React Redux Dispatch Action внутри Const - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть ниже компонент, который отображает имя страницы из магазина Redux.

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);

Внутри того же компонента мне нужно сбросить данные в редуксе. У меня есть этот редуктор

 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(''); справа перед возвратом внутрь контента, он не работает. Как я могу сбросить DataStatement в магазине Redux.

1 Ответ

1 голос
/ 03 апреля 2019

Если вы хотите отправить действие перед рендерингом, вы можете сделать так

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

но будьте осторожны, потому что если вы используете какие-либо данные из состояния, на которое влияет сброс, то это может вызвать зацикливание.

...