#javascript #reactjs #react-props #react-context
Вопрос:
Попытка использовать контекст для передачи значений между компонентами:
Создал файл для обработки контекста: единственная проблема, с которой я сейчас сталкиваюсь, заключается в том, что:
«Невозможно вызвать createContext
с привязанным литералом объекта defaultValue
, поскольку номер [1] несовместим с Number
[2] в свойстве index
«.
// @flow
import React, { createContext, useContext } from "react";
export type CountryIndexProviderType = {
index: Number,
};
const CountryContext = createContext<CountryIndexProviderType>({
index: 0,
});
type CountryContextProviderProps = {
index: Number,
};
const CountryContextProvider = ({ index }: CountryContextProviderProps) => {
return <CountryContext.Provider value={{ index }}></CountryContext.Provider>;
};
const useCountryIndexContext = () => useContext(CountryContext);
export { CountryContext, CountryContextProvider, useCountryIndexContext };
Первый компонент, в котором задается значение индекса:
import { CountryContextProvider } from "/EnteredCountriesContext";
return (
<StyledWrappingContainer>
<StyledProgress>{index 2}</StyledProgress>
<CountryContextProvider index={index}></CountryContextProvider>
</StyledWrappingContainer>
);
Второй компонент пытается использовать контекст:
import { useCountryIndexContext } from "/EnteredCountriesContext";
const { index } = useCountryIndexContext();
<StyledWrappingContainer>
<StyledProgress>
<StyledProgress>{index 2}</StyledProgress>
</StyledProgress>
</StyledWrappingContainer>
Только что включил JSX, единственный другой код, который у меня есть, относящийся к моим новым изменениям в контексте, — это импорт React в первом компоненте.
Комментарии:
1. Попробуйте kentcdodds.com/blog/how-to-use-react-context-effectively
2. Если речь идет не о том, чтобы отскакивать назад и вперед от одной переменной, а о том, чтобы разделить какое-то сложное состояние между несколькими разбросанными компонентами, я бы предложил выбрать какой-нибудь подходящий инструмент, например Redux.
3. Если ваш интерес скорее познавательный, вы можете ознакомиться с кучей кодов, которые я придумал, чтобы объяснить API контекста React: codepen.io/collection/XRMdwg
4. Спасибо! думаю, что теперь я намного ближе к решению, обновил свой код, чтобы отразить последнюю версию. возможно, проблема с типом моего контекстного файла?