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'})
        }
    }, []);

   //...