Как отправить действие для сохранения данных в магазине в следующем JS - PullRequest
1 голос
/ 19 октября 2019

что я хочу сделать, это отправить действие в моей функции заданного интервала, а не в получении начальных реквизитов и сохранить мои данные в хранилище, и как вернуть эти данные из хранилища в приложение реакции, это было просто, просто импортировать файл действия формы действияи называем так this.props.actionName(), но как мне сделать это в следующем, и чтобы получить данные из хранилища, мы отображаем состояние в реквизит, как это можно сделать в следующем, благодаря моей функции, которую я хочу реализовать в

this.fetchCryptoData().then(data => {
       var Keys = Object.keys(data.DISPLAY);
        this.setState(
          {
            crypto_head_coins: Keys
          },
          () => {
            //   // this.props.update_array([]); // update_array() is my action i haven't imported it
            let rate_updated = [true, true, true, true]; // i want my store updated_array data here
            for (let i = 0; i < this.state.crypto_head_coins.length; i++) {
             //my code here
            // this.props.store.dispatch(update_rate_array(rate_updated)) //it says cant read property
           // of dispatch of undefined 
            // i want to dispatch my action here not in getinitialprops
                    this.setState({ rate_updated });
                  }
                );
              });

1 Ответ

1 голос
/ 19 октября 2019

Я иногда использую NextJS. По сути, это то же самое, что Create-React-App.

Я только что заметил, что ваш вопрос не включает 'React-Redux', вам нужно будет установить / сохранить 'React-Redux 'и' Redux 'для использования connect / dispatch и т. Д. У меня есть примерный образец на Github .

Еще один недостающий элемент для преобразования этого в действие ... возможно, является избыточнымthunk, для обработки обещаний. (Попробуйте сначала без него.)

Более подробная информация о redux-thunk здесь. https://github.com/reduxjs/redux-thunk

Вы устанавливаете состояние дважды (один раз в обратном вызове другого), что приведет к нескольким повторным визуализациям. (Если не будет реализован ShouldComponentUpdate) Возможно, потребуется пересмотреть этот дизайн.

Реализуйте свой MapDispatch для Props

После этого вы можете упростить строку, вызывающую его, как показано ниже, используя деструктор.

// this.props.store.dispatch(update_rate_array(rate_updated)) //it says cant read property

let update_rate_array = {this.props}

update_rate_array(rate_updated)

Вы должны реализовать свои MapDispatchToProps, устраняя некоторую сложность в именовании и вызове.

Я загрузил несколько простых примеров в Github , а также есть идентичный связанный CodeSandbox .

Чтобы получать обновленную информацию от State, используйте MapStateToProps.

Пример здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...