Можно ли использовать React.context для совместного использования общего объекта?
Так что я читал об использовании реагирующего контекста, чтобы избежать бурения реквизита. Базовый пример - это компонент, который предоставляет значение, которое хранится в состоянии Компонент:
<ThemeContext.Provider value={this.state.shared, updateMyState}>
и Потребитель, который использует это значение.
Могу ли я вместо этого поделиться значением экспортированного списка или компонент, который предоставляет провайдеру, всегда ссылается на его состояние или статическое значение?
Вот что я имею в виду:
файл./list:
export const list = [];
export const updateList = (val) => list.push(val);
файл./provider:
import Provider from './provider'
import {list, updateList} from ./list
{Provider, Consumer} = React.createContext();
export ProviderComponent = () =>
<Provider value={list, updateList}>
<children>
</Provider>
}
1 ответ
Да, ты можешь. Если вы обеспокоены тем, что импорт модуля несколько раз создает несколько экземпляров объекта списка, когда вы делаете импорт, как import { a, b } from './file
, ./file
на него ссылаются только один раз ( посмотрите этот ответ на стеке)
Я думаю, что ваш синтаксис немного не так, это должно быть
<Provider value={{ list, updateList }}>