反应 redux 不更新视图组件

react redux not updating view component

当 redux 状态改变时我的视图正在更新,但是如果我点击按钮 "toggleToDoReducer" 视图正在更新到新状态。 这是我的代码

const toggleToDoReducer = (state, payload) => {
  return ({
    ...state,
    items: state.items.map((item, index) => {
      if (index === payload) {
        return { text: item.text, isChecked: !item.isChecked }
      }

      return item
    })
  })
}

shuffleMe = (oldData) => {
  let i, j, temp;
  for (i = oldData.length - 1; i > 0; i--) {
    j = Math.floor(Math.random() * (i + 1));
    temp = oldData[i];
    oldData[i] = oldData[j];
    oldData[j] = temp;
  }
  let newArray = oldData;
  return (newArray)
}

const shuffleReducer = (state) => {
  return ({
    ...state,
    items: shuffleMe(state.items)
  })
}

任何帮助将不胜感激

我认为 shuffleMe 函数正在直接改变状态。而是传递状态的副本。下面是示例实现

const toggleToDoReducer = (state, payload) => {
  return {
    ...state,
    items: state.items.map((item, index) => {
      if (index === payload) {
        return { text: item.text, isChecked: !item.isChecked };
      }

      return item;
    })
  };
};

const shuffleMe = oldData => {   
    oldData.forEach((element, i) => {
    const j = Math.floor(Math.random() * (i + 1));
    [oldData[i], oldData[j]] = [oldData[j], oldData[i]];     
    });
  return oldData;
};

const shuffleReducer = state => {
  return {
    ...state,
    items: shuffleMe([...state.items])
  };
};

尝试使用 setState({}) 函数重新呈现您的视图。