Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React和Antd TreeSelect-按TreeSelect多选值排序表_Javascript_Reactjs_React Hooks_Antd - Fatal编程技术网

Javascript React和Antd TreeSelect-按TreeSelect多选值排序表

Javascript React和Antd TreeSelect-按TreeSelect多选值排序表,javascript,reactjs,react-hooks,antd,Javascript,Reactjs,React Hooks,Antd,我有一个表,我正试图用Antd TreeSelect组件查询它 TreeSelect列出了您可以在项目名称下看到的类别和子类别选择(即扬声器系统位于家具>椅子下(对不起,我的测试数据没有意义)) 当我单击树节点时,它通过onChange调用此函数 const onChange = (value, title) => { // highlight tree dropdown correctly setTreeSelections(value); // add

我有一个表,我正试图用Antd TreeSelect组件查询它

TreeSelect列出了您可以在项目名称下看到的类别和子类别选择(即扬声器系统位于家具>椅子下(对不起,我的测试数据没有意义))

当我单击树节点时,它通过
onChange
调用此函数

  const onChange = (value, title) => {
    // highlight tree dropdown correctly
    setTreeSelections(value);

    // add selections to query string and update table per query string
    setTreeQueryItems(title);
    console.log(treeQueryItems);
    const matches = nsData.itemSort.filter((o) =>
      treeQueryItems.every((tag) => Object.values(o).includes(tag))
    );
    setInventoryDataFiltered(matches);
  };
setTreeSelection是一个设置状态,用于在TreeSelect组件中处理高亮显示和选定值-这一切都很正常

setTreeQueryItems构建我的选择数组,然后通过filter方法查询我的表并仅返回与我的TreeSelect选择匹配的表。这很有效,但它总是一种落后状态,我无法理解。我认为这与setState是异步的有关,但我需要一些指导

这是一个国家落后的例子

  • 单击iPad,不更改表对象,my
    console.log(treeQueryitems)
    显示空数组
  • 单击平板电脑,我的表格对象现在会更新,在任何字段中只显示与“iPad”匹配的项目,
    console.log(treeQueryitems)
    在其中显示iPad
  • 如果我选择另一个,那么我的表将更新为只显示iPad和平板电脑,然后继续。总是落后一个选择

    有什么想法吗