javascript - 如何在 onClick 函数上更改存储在 Redux 上的 bool 值?

标签 javascript reactjs redux onclick

我正在尝试使用存储在我的一个组件上的 onClick 事件在 Redux 上执行一个非常简单的状态更改,但我似乎无法弄清楚。我已经在 redux 中设置了逻辑、操作和容器。

容器:

export const ReportTableContainer = connnect((state) =>({
    isOpen: state.app['modal-status']['isOpen']
}),() =>({FetchPopupReport}))(ReportTable)

组件上的函数:

onCellSelect = ({idx, rowIdx}) => {
    if(idx <= 2 && idx > 0){
        //where I want to change the state from false to true
    }else if(idx > 2){
        console.log('passed')
    }
}

REDUX 文件:

export const logic = createLogic({
    type: FetchRoiReport,
    process({ getState, action, api}, dispatch, done) {
        dispatch(ModalStatus({isOpen: false}))
        dispatch(Loading({report: true}));
        api.get(URL)
        .then(obj => {
            dispatch(Loading({isOpen: false}));
            dispatch(FetchRoiReportSucceeded(obj))
            dispatch(ModalStatus({isOpen: false}));
            done();
        }).catch(err => {
            dispatch(Loading({isOpen: false}));
            dispatch(ModalStatus({status: false}));
            dispatch(FetchRoiReportFailed("ERROR"));
            done();
        })
        }
    });

我只想将 .then() 更改为 true

最佳答案

我认为您必须从要更改将在商店上分派(dispatch)的 redux 状态的位置调用一个操作,并且将调用 reducer ,最终将状态更改为“true”,然后您的组件呈现会被调用。

就像在当前的“redux”文件中一样,处理 FetchRoiReport 操作,然后在需要时调度 Loading、FetchRoiReportSucceeded、ModalStatus。 reducer 必须处理这些操作并改变状态(通过创建新状态)

关于javascript - 如何在 onClick 函数上更改存储在 Redux 上的 bool 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47757687/

相关文章:

javascript - this.props.dispatch 不是与 redux react 的函数

javascript - 从 Javascript 库调用的事件

javascript - 将对象传递给 jQuery 方法

reactjs - 除了react-datepicker中的下拉菜单外,还有其他方法可以显示月份,年份吗?

html - CSS:将元素添加到列表将 <div> 向上扩展页面,而不是向下扩展页面

node.js - 非映射属性 - Sequelize

javascript - 编写代码来启用或禁用某些控件的最佳方法

javascript - 当我使用 ID 代替 DOCUMENT 或 BODY 定位事件时,使用 jQuery 中的 on() 函数的单击事件不起作用

javascript - 大家好,如何增加数组对象中存储的状态值

javascript - 状态如何传递到react-redux应用程序中的选择器?