Я получаю данные из JSON-файла в файле actions.js и устанавливаю их в reducer sections:
dispatch(fetchSectionsSuccess({ sections: sections }));
Также у меня есть компонент Sections.js, и я бы хотел помимо хранения массива sections в reducer хранить их в state компонента Sections, чтобы в дальнейшем я мог менять всего лишь state компонента вместо отправки action, который будет изменять данные в reducer sections.
Я пытаюсь сделать это следующим образом в файле Sections.js:
const mapStateToProps = (state) => {
const props = {
sections: state.sections,
}
return props;
};
class Sections extends React.Component {
constructor(props) {
super(props);
this.state = {
sections: this.props.sections
}
}
render () {
const { sections, products } = this.props;
console.log('Sections from props ', this.props.sections);
console.log('Sections from state ', this.state);
}
Но в итоге понимаю, что данные не попадают в state:
Вопросов несколько:
В некоторых случаях нормально, например если вы меняете состояние в компоненте и у вас есть кнопки сохранить и отмена
В вашем случае, скорее всего, конструктор отрабатывает раньше чем обновляются данные. добавьте метод
componentDidUpdate(prevProps){
if(this.props.sections!==prevProps.sections){
this.setState({sections: this.props.sections});
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Стало напрягать создавать ручками много файлов и хотелось бы немного автоматизировать процессКаким инструментом можно создавать файлы...
Новичок в реакте, понимаю в теории, но не могу сделать это на практике, как можно добавить элемент по клику в таблицу с 3-мя полями по инпуту?
Имеется многоповторная отправка рест запроса, для отправки, допустим 4000 раз, требуется много времени, каким способом можно ускорить данный...