【发布时间】:2020-10-03 23:17:04
【问题描述】:
我正在尝试创建一个带有可排序列的 DetailsList(类似于此处文档中的示例:https://uifabric.azurewebsites.net/#/controls/web/detailslist),但我想使用功能组件和钩子而不是 Class 组件。
问题是onColumnClick函数在执行时,“items”数组还是空的。
这基本上是我的组件的设置:
const MyList= () => {
const [items, setItems] = useState([]);
const [columns, setColumns] = useState([]);
useEffect(() => {
const newItems = someFetchFunction()
setItems(newItems);
const newColumns= [
{
key: "column1",
name: "Name",
fieldName: "name",
onColumnClick: handleColumnClick,
},
{
key: "column2",
name: "Age",
fieldName: "age",
onColumnClick: handleColumnClick,
},
];
setColumns(newColumns);
}, []);
const handleColumnClick = (ev, column) => {
console.log(items); // This returns [] instead of a populated array.
};
return <DetailsList items={items} columns={columns} />;
};
问题在于handleColumnClick 中的items 返回一个空数组。当您想按特定列对项目进行排序时,这显然是一个问题。
【问题讨论】:
-
我也遇到了同样的问题,请问您有什么想法吗?
标签: react-component react-functional-component fluent-ui office-ui-fabric-react