【问题标题】:Redux state is read-onlyRedux 状态是只读的
【发布时间】:2021-02-04 09:23:39
【问题描述】:

我正在尝试将按下按钮的结果传递给 Redux 状态。用户可以在“否”和“是”之间进行选择

我想将它添加到状态中,然后将用户导航到下一个屏幕。以下是我声明状态的方式。

    const [state, setState ] = useState ({
      isDisabled: true,
      showAnswer: false,
      uuid: '',
    })
    const [value, onChange] = useState('')
    const [codeValue, onCodeChange] = useState('')
    state = {
        animation: new Animated.Value(0),
      };
      const handleOnChange = (name, value) => {
        setState({
        ...state,
            [name] : value,
        });
        console.log([name],':',value)
    };

这是按钮。

    <Button       
       title={"No"}
        style = {GettingToKnowYouStyle.choices}
        onPress={() => navigation.navigate ('Employment')}
       >
       No
     </Button>

我知道我在这里做错了,请帮忙。

【问题讨论】:

  • 您的代码中没有任何内容表明您正在使用 redux。

标签: react-native redux state


【解决方案1】:

小心,你把事情搞混了! useState 指的是 组件状态,而不是 redux 状态

你需要一个 redux 状态(又名reducer),至少一个action 来调度和处理副作用的东西(我推荐rxjsredux-observable 或@987654328 @)。

连接到redux 的钩子被称为useDispatch,如from the docs

我建议如下:发送操作 1 和答案,更新状态。在成功的状态减少调度动作 2 处理路由更改之后。尝试阅读文档(basic tutorial 是一个很好的入门点),如果您有一些问题,请返回详细问题。

【讨论】:

    【解决方案2】:

    你应该使用 useDispatch() 来改变 redux 的状态。

    【讨论】:

      猜你喜欢
      • 2022-11-13
      • 2022-11-22
      • 2019-07-04
      • 1970-01-01
      • 2016-01-30
      • 2020-10-18
      • 1970-01-01
      • 2018-12-25
      • 2021-08-04
      相关资源
      最近更新 更多