我有一个组件列表,想要在用户单击它时将每个组件设置为选中状态。
流看起来像
Dashboard
⎿ MyList
⎿ MyItem -> onClick -> setState({active:true})
我已经通过使用状态完成了选定的部分,但是我想知道如何停用所有其他元素。
根据定义,无法从组件外部访问状态。并且不建议始终将道具复制到状态。
在您的组件树结构中。您应将所选项目设置为父项(而非项目)中的状态。
并将选定的ID作为道具传递给每个项目。
在子渲染中,您可以执行以下操作
let itemIsSelected = (this.props.itemId == this.props.selectedId);
并将方法从父级传递到子级,然后将其包括为:
onClick={() => this.props.setSelected(this.props.itemId)}
在官方文档中,对如何构造组件有很好的解释。这可能有助于确定某个东西应该是状态还是道具,或者是否可以在孩子或父母内部更好地管理东西。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句