D K*_*vic 3 state reactjs redux react-hooks
我正在尝试使用来自 redux 的 props 作为渲染全状态组件的起点,如下所示:
const MyComp = (props) => {
const initState = {
newAttribs: [...props.attribs]
};
const [state, setState] = useState(initState)
console.log(state)
};
const mapStateToProps = (fromRedux) => {...};
const mapDispatchToProps = (dispatch) => {...};
export default connect(mapStateToProps, mapDispatchToProps)(React.memo(MyComp));
Run Code Online (Sandbox Code Playgroud)
但如果我console.log(state)它显示空数组,newAttribs即使 ininitState newAttribs在那里。
有人可以阐明如何正确执行此操作吗?谢谢。
编辑:
我在发布代码片段时犯了一个错误,我现在更新了。
显然必须在组件范围之外,而且确实如此const mapStateToProps。const mapDispatchToProps
您需要注意三件事
mapStateToProps并且mapDispatchToProps应该在组件范围之外定义props.attribs更改时,您需要更新组件状态,您可以使用useEffect例子
const MyComp = (props) => {
const initState = {
newAttribs: [...props.attribs]
};
const [state, setState] = useState(initState)
useEffect (() => {
setState({ ...state, newAttribs: [...props.attribs] })
}, [props.attribs])
console.log(state)
};
const mapStateToProps = (fromRedux) => {...};
const mapDispatchToProps = (dispatch) => {...};
export default connect(mapStateToProps, mapDispatchToProps)(React.memo(MyComp));
Run Code Online (Sandbox Code Playgroud)
如果 redux 存储中的数据在初始挂载之前可用,您将在中看到它console.log
| 归档时间: |
|
| 查看次数: |
10479 次 |
| 最近记录: |