在Const中反应Redux Dispatch动作

时间:2019-04-02 18:45:38

标签: reactjs redux react-redux

我具有以下组件,该组件显示Redux存储中的pageName。

const content = ({ pageName }) => {
    return (
        <div className="content">
            {pageName}
        </div>
    );
}

  const mapDispatchToProps = {
    DataStatement,
  }

const mapStateToProps = state => ({ pageName : state.Page.Name })


export default connect(mapStateToProps, mapDispatchToProps) (content);

在上述相同组件中,我需要在Redux中重置数据。我有这个减速器

 case 'DATA_STATEMENT':
    return {
      ...state,
      Data : {
        ...state.Data,
        StatementData : action.StatementData,
      }
    }

此操作

export const DataStatement = (StatementData) => ({ type: "DATA_STATEMENT", StatementData: StatementData  });

因此,我在Content.js中要做的只是DataStatement('');,所以我清空了DataStatement内的值。我在返回内部内容之前将DataStatement('');添加到了右边,它不起作用。如何在Redux存储中重置DataStatement。

1 个答案:

答案 0 :(得分:1)

如果要在渲染之前发送动作,则可以这样做

const content = ({ pageName, beforeRendering }) =>
{
    beforeRendering();
    return (...);
}
const mapDispatchToProps = dispatch => ({
    beforeRendering: dispatch(DataStatement()),
})

但是要小心,因为如果您使用的状态中的任何数据都受到复位的影响,则可能会导致循环。