我正在审查一个 React 组件,它包含一个属性和一个属性。stateallData要遵循最佳实践,不应该是 的一部分吗?allDatastateconstructor(props) { super(props); this.allData = []; this.state = { allDisplayedData: [], allRowsCount: -1, favData: [], favRowsCount: -1, }; this.searchAll = this.searchAll.bind(this); this.handleCellClick = this.handleCellClick.bind(this); }
3 回答

月关宝盒
TA贡献1772条经验 获得超5个赞
如果希望组件在更改时重新呈现,则需要处于状态,否则将其放在任何位置。除其他任何实例变量都不是 React 控制的一部分,因此它们没有相同的使用 setState 进行设置的能力。这意味着它们不会像状态那样重新呈现组件。this.state
从本质上讲,这取决于你用它做什么以及你想如何使用它。
我倾向于将此模式用于取消标记和 intervalIds 等内容,以及我以后可能需要的其他数据,但不需要将其用作状态的一部分,因为它仅在卸载或更新时需要,但在渲染本身中不需要。
如果在渲染中需要它,则应使其处于状态,或者准备好在更新时处理未呈现的组件。

慕容3067478
TA贡献1773条经验 获得超3个赞
除了之前的两个详细答案,我在 https://reactjs.org/docs/state-and-lifecycle.html
虽然 this.props 是由 React 自己设置的,而且 this.state 有特殊的含义,但如果你需要存储不参与数据流的东西(比如计时器 ID),你可以自由地手动向类中添加其他字段。
添加回答
举报
0/150
提交
取消