如何更新Kendo UI TreeView中的数据?

时间:2018-03-15 11:57:52

标签: reactjs kendo-react-ui

我正在使用Kendo UI库中的TreeView组件,我想知道如何更新树中的数据。可能吗?

这是我的代码:

class TreeViewTest extends React.Component {
  dataSource = [
    {
      id: 123,
      text: "aaaa",
      expanded: true,
      spriteCssClass: "rootfolder",
      items: [
        {
          id: 2,
          text: "aaa1",
          expanded: true,
          spriteCssClass: "folder",
          items: [
            {
              id: 3,
              text: "aaa2",
              spriteCssClass: "html"
            },
            {
              id: 4,
              text: "aaa3",
              spriteCssClass: "html"
            },
            {
              id: 5,
              text: "aaa4",
              spriteCssClass: "image"
            }
          ]
        }
      ]
    }
  ];

  async componentDidUpdate(prevProps) {
    if (this.props.endpoint !== prevProps.endpoint) {
      init(this.props, this);
    }
  }

  render() {
    return (
      <div>
        <TreeView dataSource={this.dataSource} />
      </div>
    );
  }
}

const init = async (props, _this) => {
  const { endpoint, selectContent, setModal } = props;
  const actions = props;

  const response = await fetch(`${endpoint}/my/api/here`);

  const body = await response.json();
  /* some work on body here....*/
  const data = [
    {
      id: 345,
      text: "bbbb",
      expanded: true,
      spriteCssClass: "rootfolder",
      items: [
        {
          id: 2,
          text: "bbb1",
          expanded: true,
          spriteCssClass: "folder",
          items: [
            {
              id: 3,
              text: "bbb2",
              spriteCssClass: "html"
            },
            {
              id: 4,
              text: "bbb3",
              spriteCssClass: "html"
            },
            {
              id: 5,
              text: "bbb4",
              spriteCssClass: "image"
            }
          ]
        }
      ]
    }
  ];

  _this.dataSource.push(data);
};

如何在使用新数据进行远程调用后更新dataSource? 在安装react包之前,我添加了一个使用Kendo UI jquery版本的工作解决方案,它可以正常运行所有更新。 使用jquery版本我必须设置选项,我有函数setDataSource(data)并且它完美地运行,现在我需要做什么?

编辑 我使用componentDidUpdate和网络调用改进了代码。

1 个答案:

答案 0 :(得分:1)

您可以引用包装的kendo.ui.TreeView元素。然后你可以调用你提到的函数--setDataSource(data)。这是一个例子:

 View viewOBJ = inflater.inflate(R.layout.layout_child, parent_layout, false);

  return viewOBJ ;