我需要用WooCommerce Rest API加载我的nodeJS应用程序中的所有产品。我使用WooCommerce REST API - JavaScript Library和Syncfusion Grid Component。因为我不能一次加载所有数据,我想使用this这样的 * 按需加载数据 *,但我找不到任何文档或示例。
我有这样的东西:
import React from 'react';
import { useEffect, useState } from "react";
import { GridComponent, ColumnsDirective, ColumnDirective, Resize, Sort, ContextMenu, Filter, Page, ExcelExport, PdfExport, Edit, Inject } from '@syncfusion/ej2-react-grids';
import WooCommerceRestApi from "@woocommerce/woocommerce-rest-api";
var WooCommerce = new WooCommerceAPI({
url: 'http://example.com',
consumerKey: 'ck_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
consumerSecret: 'cs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
wpAPI: true,
version: 'wc/v1'
});
const WooCommerceProducts = () => {
const [products, setProducts] = useState([]);
useEffect(() => {
fetchOrders();
}, []);
let fetchOrders = () => {
WooCommerce
.get("products", {
per_page: 100,
page: 1
})
.then((response) => {
if (response.status === 200) {
setProducts(response.data);
}
})
.catch((error) => { });
};
return (
<div className='m-2 md:m-10 p-2 md:p-10 bg-white rounded-3xl'>
<Header category="Page" title="WooCommerce Orders" />
<GridComponent
id='gridcomp'
dataSource={orders}
allowPaging
allowSorting>
<ColumnsDirective>
<ColumnDirective field='id' />
<ColumnDirective field='name' />
<ColumnDirective field='slug' />
<ColumnDirective field='status' />
...
</ColumnsDirective>
<Inject services={[Resize, Sort, ContextMenu, Filter, Page, ExcelExport, PdfExport]} />
</GridComponent>
</div>
)
}
export default WooCommerceProducts
请帮帮忙谢谢
1条答案
按热度按时间btqmn9zl1#
如果您正在使用任何定制服务,我建议您使用定制绑定特性将数据绑定到网格,我将分享EJ2Grid中定制绑定的行为。
对于每个网格操作(如Filter、Page等),我都触发了dataStateChange事件,并且在事件参数中发送了相应的操作细节(如skip、take、filter field、value、sort direction等)。基于此,您可以在服务中执行操作,将数据作为result和count对象返回。
注:在网格初始呈现时未触发"dataStateChange"事件。如果使用的是远程服务,则需要使用分页查询手动调用远程服务(需要将跳过值设置为0,并根据您在网格中的pageSettings的pageSize取值。如果您没有在pageSettings中定义pageSize,需要在Grid的load事件中发送默认值12),请返回结果,如"{result:[...],计数:...}"格式转换为网格。
在Grid中执行CRUD操作时会触发"dataSourceChanged"事件。您可以使用此事件中的操作详细信息在服务中执行CRUD操作,并且需要调用endEdit方法以指示保存操作已完成。
定制装订:www.example.comhttps://ej2.syncfusion.com/react/documentation/grid/data-binding/data-binding/#custom-binding
演示:www.example.comhttps://ej2.syncfusion.com/react/demos/#/material/grid/custom-binding
样品:https://stackblitz.com/edit/react-v64sms-wx3hsy?file=index.js