Я работаю с небольшим выставочным проектом, где разрабатываю как для iOS / Android, так и для Интернета. Недавно я захотел добавить в проект стилизованные компоненты и все настроил и запустил для Интернета и мобильных устройств, пока я не начал работать с поставщиком тем и опорой темы. Я на 99% уверен, что должен был все сделать правильно, потому что он работает на мобильных устройствах, но в веб-версии я получаю исключение JS.
- Я создал тип для темы и знаю, что он работает, потому что моя IDE сообщает мне, когда я пытаюсь добавить в тему что-то не так.
- Я создал theme.ts и импортирую его в компонент, в котором реализовал ThemeProvider. Я знаю, что это работает, потому что при доступе к prop.theme я получаю автозаполнение, и, как я уже сказал, это работает на мобильных устройствах.
const Container = styled.View`
background-color: ${props => props.theme.color.primary};
`
Я получаю следующее сообщение об ошибке: TypeError: не удается прочитать свойство «primary» из undefined
Я подозреваю, что это может быть связано с упаковщиком expo и отсутствующими загрузчиками или чем-то еще? Я не знаю. Насколько мне известно, я сделал все, как в документации, и подозреваю, что это проблема с Expo Web и ThemeProvider.
Вот соответствующие пакеты, которые я использую:
"expo": "~39.0.2"
"styled-components": "^5.2.1"
"@babel/core": "~7.9.0"
Я заблокирован этим, потому что мне нужно решить, продолжать ли стилизованные компоненты или без них.