gpt4 book ai didi

reactjs - 如何在 React Redux 中创建临时状态?

转载 作者:行者123 更新时间:2023-12-03 13:27:04 25 4
gpt4 key购买 nike

我已经使用 Redux 一个月了,当项目变得非常大时,似乎没有必要将整个应用程序暴露给每个Reducer 的所有值。有没有好的方法来创建临时状态或为组件创建单独的状态?

我的想法是错误的还是这样的结构是有原因的?

最佳答案

我假设“每个 reducer 的值”指的是整个应用程序状态。

您当然可以分割您的状态并仅将必要的部分公开给特定组件。这就是 react-redux 绑定(bind)中的 connect 方法的用途。 connect 接受一个函数(例如 mapStateToProps),该函数反过来接受您的整个应用程序状态,并仅公开您指定为要“连接”到 redux 的组件的 props。

例如,假设您有一个像这样的简单 React 组件,它显示用户的姓名和地址:

var myComponent = React.createClass({
render: function() {
return (
<div>{Name from redux state goes here}</div>
<div>{Address from redux state goes here}</div>
);
}
});

显然,您不需要将整个应用程序状态发送到此组件,只需将包含用户姓名和地址的部分发送即可。所以你可以像这样使用connect:

// the "state" param is your entire app state object.  
function mapStateToProps(state) {
return {
name: state.name,
address: state.address
}
}

var connectedComponent = connect(mapStateToProps)(myComponent);

包装后的myComponent现在实际上看起来像这样:

var myComponent = React.createClass({
propTypes: {
name: React.PropTypes.string // injected by connect
address: React.PropTypes.string // injected by connect
},

render: function() {
return (
<div>{this.props.name}</div>
<div>{this.props.address}</div>
);
}
});

关于reactjs - 如何在 React Redux 中创建临时状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34140896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com