我实际使用的方式效果很好,但我的道具却不断增长,我想知道是否可以将它们分组为一个状态并将其传递给孩子,这是我的代码:
<Panel
uniqueIDs={uniqueIDs}
userID={userID}
loading={loading}
premium={premium}
percent={percent}
total={total}
until={until}
user={user}
done={done}
/>
渲染后,我定义这些变量,如下所示:
让{正在加载,清空,总计,唯一ID,切片,百分比,直到确定,
用户,高级,数据,密钥,已完成,用户ID} = this.state;
我可以只发送
this.state
变量吗?我进行了一些研究,但没有找到解决问题的方法,我知道我可以使用第三方库来管理状态,但是我试图将其保持简单。 最佳答案
是的,您绝对可以将整个状态变量作为多个属性传递给子组件
<Child {...this.state}/>
这将是完全可以接受的。
如果您的状态是
{id: 1, name: 2}
您仍然可以通过以下方式访问子组件中的道具
props.id or this.props.id
props.name or this.props.name
注意,您应该对组件重新渲染有所了解。如果您对父组件中的状态进行了许多更新,这也将导致子组件也重新渲染很多,这可能会导致性能问题。
要解决此问题,请确保对类组件采用
componentDidUpdate()
和对功能组件采用react-hooks
之类的方法。这些可以帮助控制重新渲染的流程。