我正在使用react库“react sortable-tree”,我不知道如何只向特定类型的节点添加按钮。例如,节点中的元素有一个特定的值,我需要添加一个按钮来做一些事情。
<SortableTree
canDrop={canDrop}
getNodeKey={({ node }) => node.id}
treeData={this.state.treeData}
onChange={this.onChange}
generateNodeProps={({ node, path }) => ({
title: (
<a href={node.url}>{node.title}</a>
),
})}
/>为了只在某些特定情况下添加按钮,我可以在这个组件中添加什么?
编辑

这样做的目的是只在节点是Web内容时添加按钮
实际上,我是这样做的:
generateNodeProps={({ node, path }) => ({
title: (
<Row>
<Col xs={6} sm={6} md={6} lg={6}>
<a href={node.url}>{node.title}</a>
</Col>
<Col xs={6} sm={6} md={6} lg={6}>
{node.isWebContent &&
<DefaultButton text='Open editor' />
}
</Col>
</Row>
),
})}这就是结果:

没有比这更好的方法了?一个好的做法,喜欢不使用产权属性?
发布于 2018-12-20 08:22:45
我不知道您的代码是什么样子,但是这样的函数对您有意义吗?
renderButton = (title) => {
return title === 'Web Content' ? <button>Your button</button> : null
}
<SortableTree
canDrop={canDrop}
getNodeKey={({ node }) => node.id}
treeData={this.state.treeData}
onChange={this.onChange}
generateNodeProps={({ node, path }) => ({
title: (
<a href={node.url}>
{node.title}
{renderButton(node.title)}
</a>
),
})}
/>发布于 2019-08-30 19:05:00
可以使用generateNodeProps向呈现的元素添加按钮。有一个专用的buttons支柱(我在2.5.2和2.2.0版本中进行了检查,但我相信它也是早期可用的)。示例:
<SortableTree
canDrop={canDrop}
getNodeKey={({ node }) => node.id}
treeData={this.state.treeData}
onChange={this.onChange}
generateNodeProps={extendedNode => ({
title: (
<a href={extendedNode.node.url}>{extendedNode.node.title}</a>
),
buttons: extendedNode.node.title === "Web Content" ? [<button>X</button>] : [],
})}
/>https://stackoverflow.com/questions/53856110
复制相似问题