Подтвердить что ты не робот

Обновление состояния компонента извне React (при ответе сервера)

Я изучаю Реакт. На данный момент у меня есть несколько components, прикованных как родитель-ребенок, общение через них легко выполняется с помощью обратных вызовов.

У меня есть таблица (компонент реакции) и небольшая модальная форма ajax (не реагировать). Когда я получаю ответ (элемент) с сервера, я хотел бы добавить элемент в таблицу.

Мой главный вопрос: возможно ли запустить изменение состояния из внешнего реагирования (в данном случае на ответ сервера)?

4b9b3361

Ответ 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

Думаю, вам стоит взглянуть на веб-сайты, вам придется привязать их в свое приложение-ответ и на стороне сервера, но это даст вам желаемый эффект.