This.props не загружает данные изact / redux - PullRequest
0 голосов
/ 31 марта 2020

У меня есть следующий метод:

  const getAgentData = () => {
      axios.get('http://localhost:3000/api/agent', {
          headers: {
            'Content-Type': 'application/json'
          }
        })
        .then(async res => {
          const dbData = res.data.data;
          let dataForTable = dbData.map( el => {
            let obj = {};
            obj._id = el._id;
            obj.name = el.name;
            obj.phone = el.phone;
            if(el.name) {obj.email = el.email}
            return obj;
          })
          await dispatch({ type: 'ADD_PHOTOGRAPHERS', dataForTable });
        })
        .then(() => {
            setLoading(false)
        })
        .catch((error) => {
          console.error(error)
        })
  }

Я обновляю состояние избыточности с помощью этой строки: await dispatch({ type: 'ADD_PHOTOGRAPHERS', dataForTable });

в дочернем компоненте, я запускаю это:

  componentDidMount() {
    console.log(this.props.photographers)
  }

В исходном состоянии this.props.photographers = []; это то, что записывается на консоль, оно никогда не регистрирует обновленное состояние избыточности. Насколько я понимаю, редукс должен автоматически обновляться, и он должен console.log обновлять состояние. Любая идея, что я делаю не так?

I also tried logging data with the props being here but it's also an empty array:
class DataTableComponent extends Component {
  constructor(props) {
      super(props)
      this.state = {
          data: this.props.photographers,
          loading: false,
          name: '',
          phone: '',
          email: '',
      }
  }
...

Моя карта редукции для реквизита в дочернем компоненте, который я описываю:

function mapStateToProps(state) {
  return {
    photographers: state.Customizer.photographers
  }
}

export default connect(mapStateToProps)(DataTableComponent);

1 Ответ

1 голос
/ 31 марта 2020

Проверьте, если await dispatch({ type: 'ADD_PHOTOGRAPHERS', dataForTable });, кажется, что вы не отправляете полезную нагрузку правильно. Вы можете регистрировать или отлаживать, как данные полезной нагрузки этого действия поступают в редуктор.

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