我正在使用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和网络调用改进了代码。
答案 0 :(得分:1)
您可以引用包装的kendo.ui.TreeView元素。然后你可以调用你提到的函数--setDataSource(data)。这是一个例子:
View viewOBJ = inflater.inflate(R.layout.layout_child, parent_layout, false);
return viewOBJ ;