RTK初始状态会更新组件吗?

问题描述 投票:0回答:1

Redux 工具包中有一个设置初始状态的选项。所以我们可以创建一个reducer来设置初始状态。

我的问题是,它会更新所有使用该状态的组件吗?

import { createSlice } from '@reduxjs/toolkit'

const counterSlice = createSlice({
  name: 'counter',
  initialState: {name: 'stack'},
  reducers: {
      reset: () => initalState,
  },
})

我在组件 A 中使用 name state,然后从组件 B 调用重置减速器。即使状态更新,组件 A 也不会重新渲染。这是为什么?我想知道这个

initialState
功能是否没有更新相关内容

reactjs react-redux redux-toolkit
1个回答
0
投票

确保以正确的方式创建

reducer
。在您给定的代码中,重置减速器尚未正确创建。

您应该这样做:

const counterSlice = createSlice({
  name: 'counter',
  initialState: { name: 'stack' },
  reducers: {
    resetState: (state, action) => {
      return state = { name: 'default' };

另外,请确保您正确地发送

const ComponentB = () => {
  const name = useSelector(state => state.counter.name);

  const dispatch = useDispatch();

  const handleReset = () => {
    dispatch(resetState());
  };

  return (
    <div>
      <h1>Counter Name: {name}</h1>
      <button onClick={handleReset}>Reset Name</button>
    </div>
  );
};
© www.soinside.com 2019 - 2024. All rights reserved.