【发布时间】:2019-05-02 17:21:52
【问题描述】:
我正在尝试将一些道具传递给无状态组件以满足我的条件渲染需求。将redux状态值分配给connect()中的变量时,例如var: state.reducer.var,我没有得到“state.reducer.var”对象。相反,我得到了整个状态对象。
当 console.log(state.reducer.var) 在 connect() 作为回调时,我得到了我的预期结果 - var 值。但是,当 console.log(var) 作为回调将我新分配的 var 传递给它时,我得到了一个对象,当 console.log(state) 时我会得到。
在我的子组件中,我使用我的 var 作为 props.var 得到 undefined
const _ProtectedRoute = ({ component: Component, ...rest }, props) => {
return (
<Fragment>
{!props.isAuthed
? <Redirect to="auth" noThrow />
: <Component {...rest} />
}
</Fragment>
);
}
const ProtectedRoute = connect(
(state) => ({
isAuthed: state.user.isAuthed,
}, (isAuthed) => {console.log('state value: ', isAuthed)})
)(_ProtectedRoute);
我希望我分配 redux 状态的 var 作为道具传递给我的无状态 _ProtectedRoute 组件,以便我可以在条件语句中使用它。
【问题讨论】:
-
connect的第二个参数不是回调;它是一个对象(或返回对象的函数),其中包含 prop 名称到 Redux 动作创建器函数的映射。
标签: javascript reactjs redux react-props