@Pogran

Почему не срабатывает componentWillMount?

У меня есть такой роутинг.
<Route path="entity" component={EntityForm} />
  <Route path="entity/edit/:entity_id" component={EntityForm} />


Смысл в том что в первом случае у нас загружается просто пустая форма для создания элемента, а во втором случае подгружается на редактирование элемент.
В EntityForm у меня есть вот такой код
componentWillMount() {
		if(!isEmpty(this.props.params.entity_id)) {
			this.props.loadEntityRequest(this.props.params.entity_id).then(() => {
				this.setState({name: this.props.entity.name});
			});
		} else {
			this.props.initEntity();
		}
	}


И вот когда я нахожусь на редактируемой странице, т.е на странице этого роута entity/edit/:entity_id и перехожу на страницу entity (т.е пытаюсь создать новый роут) у меня не срабатывает componentWillMount. А componentWillMount происходит либо обнуление statе, либо если страница редактирование загрузка существующего элемента. В чём может быть моя ошибка в логике?
  • Вопрос задан
  • 236 просмотров
Решения вопроса 1
miraage
@miraage
Старый прогер
Дело в том, что React "умный". Он понимает, что надо рендерить тот же компонент, и не заменяет его.
В данном случае, Вы можете получить новые props в методе componentWillReceiveProps и сделать там setState().
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы