Redux-未明确调用时调度操作

我对Redux相当陌生,并且遇到了一些我不太了解的行为。

  1. 我有另一个函数nextFiveDays调用完全相同的操作,但是单击按钮会触发该操作。单击该按钮后,我确实看到UPDATE_DATE分派了action.type并更新了商店。

  2. 在函数中nextFiveDays,即使updateDate函数已被注释掉,也将分派动作似乎setState仍触发要分派的动作。这是为什么?

class SomeComponent {
    state = { date: new Date() }

    nextFiveDays = () => {
        let date = new Date(this.state.date);
        date.setDate(date.getDate() + 5);
        //updateDate(date); // Redux store action dispatch
        this.setState({ date });
    };

    prevFiveDays = () => {
        let date = new Date(this.state.date);
        date.setDate(date.getDate() - 5);
        //updateDate(date); // Redux store action dispatch
        this.setState({ date });
    };

    render() {
        const { date } = this.state

        return <SemanticDatepicker
                        value={new Date(date)}
                        date={new Date(date)}
                        onChange={(_, data: any) => {
                            this.setState({ date: data.value });
                            updateDate(data.value);
                        }}
                    />
                       <Button
                            onClick={this.prevFiveDays}
                        />
                        <Button
                            onClick={this.nextFiveDays}
                        />
    }
ash

调用该nextFiveDays函数时,它将更新date状态并重新渲染组件。

您可以SemanticDatePicker使用此date状态值设置的值,触发onChange事件。

您在onChange事件处理程序中调度操作

这就是为什么要分派行动的原因。

注意:

可以将Redux Actionprops与组件绑定在一起,但与组件状态无关。

解:

当前,您正在使用相同的值更新组件的状态和redux存储。

您可以删除date状态值,并将属性从商店映射到组件prop。(使用mapStateToProps

因此,仅通过分派操作即可将您的date价值从商店中持久保存到组件中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Redux-未调用调度

来自分类Dev

React & Redux:调度操作不起作用

来自分类Dev

Redux / React:在存储上映射时调度动作

来自分类Dev

React中的Redux调用多个调度功能

来自分类Dev

来自 Socketio 事件的 Redux 调用调度

来自分类Dev

测试调用API的Redux操作

来自分类Dev

如何获得调度Redux

来自分类Dev

reactjs redux 通知调度

来自分类Dev

Redux中的异步操作

来自分类Dev

Redux操作未触发

来自分类Dev

反应 redux 异步操作

来自分类Dev

如何响应Redux中的状态更改并调度其他操作?

来自分类Dev

如何从不了解Redux的服务中调度操作?

来自分类Dev

Redux-调度异步操作时更改URL

来自分类Dev

redux-thunk调度方法触发未定义的操作

来自分类Dev

React / TypeScript / Redux / Thunk操作未调度,状态未更新

来自分类Dev

Redux-调度异步操作时更改URL

来自分类Dev

如何响应Redux中的状态更改并调度其他操作?

来自分类Dev

React Native Redux:已调度操作,返回结果

来自分类Dev

React Redux - 无法通过调度操作传递字符串

来自分类Dev

Docker容器映像中的二进制文件未明确调用时未启动

来自分类Dev

Redux无效的挂接调用

来自分类Dev

我应该如何记录对Redux商店的每个调度调用?

来自分类Dev

得到axios响应Redux后调用多个调度

来自分类Dev

redux-observable 调度动作

来自分类Dev

处理搜索点击将路由到 URL 并在 redux 上同时调度功能

来自分类Dev

React Native - Redux ~ 没有被调用时更新道具

来自分类Dev

将redux调度映射到redux-form

来自分类Dev

计算对函数的调用次数(未明确)