У меня есть приложение-приложение, которое запрашивает локальную точку HTTP и возвращает данные каждые несколько секунд. Каждый раз, когда возвращается запрос ajax, я упаковываю часть информации, возвращаемую в объект, и добавляю этот объект к массиву. Это означает, что каждый раз, когда Аякс вызов возвращается, я долженвременно хранить данные в компоненте без использования состояния
- получить массив из состояния
- добавить новый массив заявить после того как я добавить объект в массив
В результате из этого постоянно обновляемого состояния мое приложение React автоматически отображает (&). Ничего не изменилось в пользовательском интерфейсе в результате добавления к объекту массива (а затем сохранения массива в состоянии), но React Renders автоматически.
Вопрос: Есть ли способ получить массив для различных вызовов функций в компоненте без использования состояния?
var arr = this.state.arrayOfObjects.slice();
obj = {};
var timeStamp = Date.now();
obj['stuffFromApi'] = apiStuff;
obj['timeStamp'] = timeStamp;
arr.push(obj);
this.setState({ arrayOfObjects: arr});
Возможный дубликат [Где наилучшее место для размещения значения, которое вычисляется один раз по первоначальному параметру ввода и никогда не менялось снова, в ReactJS?] (Http://stackoverflow.com/questions/28338913/where -is-the-best-place-to-put-a-value-which-computed-once-by-the-initial-pas) – FakeRainBrigand
Я также предполагаю, что, возможно, вы должны/могли использовать Flux, таким образом, хранилище может решить, должен ли он обновлять состояние вашего компонента, таким образом, запускать вызов рендеринга. –