reactjs - 从组件外部设置 React 组件状态

标签 reactjs

我有一个组件列表,并希望在用户单击每个组件时将其设置为选中状态。

流程看起来像

Dashboard
 ⎿ MyList
    ⎿ MyItem -> onClick -> setState({active:true})

我已经通过使用状态完成了选定的部分,但我想知道如何停用所有其他元素。

最佳答案

根据定义,状态不能从组件外部访问。 并且不建议总是将 props 复制到 state。

在你的组件树结构中。您应该将所选项目设置为父项中的状态(而不是项目中的状态)。

并将选定的 Id 作为 Prop 传递给每个项目。

在子渲染中,您可以执行类似的操作

let itemIsSelected = (this.props.itemId == this.props.selectedId);

并将方法从父级传递给子级,然后将其包含为:

onClick={() => this.props.setSelected(this.props.itemId)}

在官方文档中,有一个good explanation on how to structure components 。这可能有助于确定某些东西应该是状态还是 Prop ,或者东西是否可以在子级或父级内部更好地管理。

关于reactjs - 从组件外部设置 React 组件状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37513440/

相关文章:

javascript - 从 Canvas 中删除上下文弧

reactjs - 使用 TypeScript 在 Nextjs 中映射数组

css - Material 用户界面 : Give TableBody a max height and make it vertically scrollable

node.js - 发生最小异常;使用非缩小的开发环境来获取完整的错误消息和其他有用的警告

reactjs - 无法解析模块 '@nivo/pie' 的路径

javascript - 未找到模块 - React

javascript - 如何将纯 JavaScript 重写为 React 组件(foreach)

javascript - Reactjs:将变量传递给findDOMNode

javascript - form.submit 回调未被调用

reactjs - 我的应用程序代码如何知道应用程序是否正在使用 testcafe 进行测试?