Обновление состояния компонента извне React (при ответе сервера)
Я изучаю Реакт. На данный момент у меня есть несколько components
, прикованных как родитель-ребенок, общение через них легко выполняется с помощью обратных вызовов.
У меня есть таблица (компонент реакции) и небольшая модальная форма ajax (не реагировать). Когда я получаю ответ (элемент) с сервера, я хотел бы добавить элемент в таблицу.
Мой главный вопрос: возможно ли запустить изменение состояния из внешнего реагирования (в данном случае на ответ сервера)?
Ответы
Ответ 1
Можете ли вы вызвать изменение состояния компонента вне компонента?
Да. Вот простой пример
В вашем реагирующем компоненте настроено глобально доступное закрытие, которое будет обновлять его при запуске функции.
componentWillMount(){
globalVar.callback = (data) => {
// `this` refers to our react component
this.setState({...});
};
}
Затем, когда ваш ответ ajax'd возвращается, вы можете запустить событие с возвращенными данными
globalVar.callback(data);
Или для чего-то более надежного, настройте настраиваемое событие и глобальный прослушиватель
Ответ 2
component
Лучшей практикой штата является сохранение действительно внутренних state
данных, а не интереса внешнего компонента. Если вы должны изменить компонент из новых внешних данных, используйте props
, просто измените props
извне, а компонент rerender будет реагировать на изменения.
Ответ 3
Думаю, вам стоит взглянуть на веб-сайты, вам придется привязать их в свое приложение-ответ и на стороне сервера, но это даст вам желаемый эффект.