Javascript 将变量添加到功能组件的存储中';s的初始渲染
假设我们需要一个计数器组件Javascript 将变量添加到功能组件的存储中';s的初始渲染,javascript,reactjs,redux,react-redux,Javascript,Reactjs,Redux,React Redux,假设我们需要一个计数器组件,它允许我们在props中指定起始值,并在单击时简单地增加 比如: const Counter = (props: {startingValue: number}) => { const dispatch = useDispatch(); const variable = useSelector(store => store.storedVariable); return <p onClick={dispatch(() = &
,它允许我们在props中指定起始值,并在单击时简单地增加
比如:
const Counter = (props: {startingValue: number}) => {
const dispatch = useDispatch();
const variable = useSelector(store => store.storedVariable);
return <p onClick={dispatch(() = > {storedVariable: variable})}>{variable}</p>;
}
const Counter=(props:{startingValue:number})=>{
const dispatch=usedpatch();
常量变量=useSelector(store=>store.storedVariable);
返回{storedVariable:variable}}>{variable}
;
}
除此之外,当它装载时,我们希望它将其计数变量存储在redux存储中(其值等于startingValue属性),当它卸载时,我们希望从存储中删除该变量
如果没有存储,我们可以简单地使用useState(props.startingValue)
hook,但是对于存储,我们似乎需要构造函数/等价物。
我看到的一个解决方案是实现一个useState(isInitialRender)
变量,并在存储中创建一个变量,或者不基于if讲师,尽管在我看来这是一个有点复杂的解决方案。
我还觉得我在试图做一些违背react-redux哲学的事情。这就是我想要做的事情。如果为第二个参数(依赖项数组)指定空数组,则它将仅在第一次渲染时运行,并且可以使用返回函数将其删除 以下是大致的操作方法:
const Counter = (props: {startingValue: number}) => {
const dispatch = useDispatch();
const variable = useSelector(store => store.storedVariable);
useEffect(() => {
dispatch({type: 'store-starting-value', payload: startingValue})
return ()=>{
dispatch({type: 'clear-starting-value'})
}
}, []);
//...