Ant Design中怎么用带搜索和异步数据加载Tree组件

我用可搜索的树的代码,加上了异步加载的代码,tree就会报错,gData已经修改成功了,感觉是重新渲染树的时候出现了问题,有写过这样需求的吗,求指点下
演示地址 https://codesandbox.io/s/gall...

1.png

355.png
22.png

阅读 5.2k
2 个回答

使用箭头函数的时候,如果用花括号包裹了函数体,须像匿名函数一样显式返回相应的结果。
因此 treeNode 应该:

  onLoadData = treeNode => {
    return new Promise(resolve => {
      if (treeNode.props.children) {
        resolve();
        return;
      }
      setTimeout(() => {
        treeNode.props.dataRef.children = data2;
        this.setState({
          treeData: [...this.state.treeData]
        });
        resolve();
      }, 1000);
    });
  };

或者:

  onLoadData = treeNode => 
    new Promise(resolve => {
      if (treeNode.props.children) {
        resolve();
        return;
      }
      setTimeout(() => {
        treeNode.props.dataRef.children = data2;
        this.setState({
          treeData: [...this.state.treeData]
        });
        resolve();
      }, 1000);
    });

clipboard.png

这里有明显的对 Promise 的用法错误
应该修正为

clipboard.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题