我无法理解何时应该将 props 传递给子组件而不是直接将这些组件连接到状态。
我的项目中的组件有两种接收 props 的方式:
1)将组件(子组件或父组件)连接到 redux 的全局状态。这允许我指定我的组件将接收全局状态的哪些部分,但当 prop 更改时将重新渲染。
const mapStateToProps = state => ({
error: state.error,
progress: state.scan.progress,
latitude: parseFloat(state.enrollment.latitude),
longitude: parseFloat(state.enrollment.longitude),
});
export default connect(mapStateToProps)(MapViewHome);
Run Code Online (Sandbox Code Playgroud)
2)以典型的 React-Native 方式将 props 传递给子组件。
<MapViewHome error={this.props.error} progress={this.props.progress} latitude={this.props.latitude} longitude={this.props.longitude} />
Run Code Online (Sandbox Code Playgroud)
我之所以问这个问题是因为我有parent component A与国家有关的信息。
Parent component Ax直接将 prop 传递给,child B将相同的 prop 传递x给child C。
如果 propx发生变化,这将导致组件 A、B 和 C 重新渲染。我可以通过直接连接到状态来避免组件 A 和 B 的重新渲染child C,因此它是唯一受 prop 更改影响的组件。
但是像这样将小型子组件连接到全局状态是一种好的做法吗?为什么不将每个组件连接到状态呢?