我的摘要如下。
AnotherFile.js
import MyAccount from './MyAccount';
<MyAccount name='peace and love' />
MyAccount.js
const MyAccount = (props) => {
// I can access props.isLoggedIn and props.setLogout,
// and I can access props.name too, wow
}
const mapStateToProps = (state) => ({
isLoggedIn: state.isLoggedIn
})
const mapDispatchToProps = dispatch => ({
setLogout: () => dispatch(setLogout())
})
export default connect(mapStateToProps, mapDispatchToProps)(MyAccount)
因此,我将一些道具传递给已连接的组件,演示组件 MyAccount 也可以访问这些道具。
以前,如果要实现这一点,我将在mapStateToProps
中添加第二个参数,如下所示。但是现在看来没有必要通过ownProps
吗?有人可以确认吗?
const mapStateToProps = (state, ownProps) => ({
isLoggedIn: state.isLoggedIn,
...ownProps
})
答案 0 :(得分:2)
ownProps(可选)
[...]
您不需要在
ownProps
返回的对象中包含mapStateToProps
的值。connect
将自动将这些不同的道具来源合并为最终的道具集合。
是的,没有必要将ownProps
显式传播到mapStateToProps
返回的道具中。
如果您的组件需要来自其自身道具的数据来从商店中检索数据,例如,通常只需要ownProps
。使用id
道具从项目列表中选择某个项目。