#reactjs #react-native #recoiljs
Вопрос:
у меня есть вопрос по поводу отдачи. В моем приложении есть несколько экранов. Существует множество текстовых компонентов. Сейчас я работаю в темном режиме и стараюсь использовать для этого отдачу. У меня есть atom isDarkMode, который может быть ложным или истинным. Есть одна проблема. Необходимо ли проверять каждый текстовый компонент( у меня около 50 для всего приложения) в style => {isDarkMode ? Темные стили: светлые стили}. Во всех текстовых компонентах мне нужен один и тот же стиль в темном режиме… Теперь я просто повторяю это в каждом текстовом компоненте. Есть ли способ справиться с этим более разумным способом, чтобы избежать повторения? Я имею в виду, например, передать эти стили от родителя или что-то в этом роде? или мне просто нужно делать то, что я делаю сейчас?
У меня есть переключатель в настройках, поэтому, если этот переключатель верен, я хочу темный режим, если ложь, я хочу светлый режим. Итак, есть ли другой метод, кроме проверки того, является ли это состояние переключателя истинным или ложным в каждом текстовом компоненте? Теперь у меня есть что-то вроде этого
<Text style={{isDarkMode ? darkModeStyles: lightModeStyles}}> Some text </Text>
<Text style={{isDarkMode ? darkModeStyles: lightModeStyles}}> Some text </Text>
<Text style={{isDarkMode ? darkModeStyles: lightModeStyles}}> Some text</Text>
<Text style={{isDarkMode ? darkModeStyles: lightModeStyles}}> Some text </Text>
и т.д. и множество других текстовых файлов на нескольких экранах
, если я смогу управлять всеми текстами одновременно? Я имею в виду, чтобы не писать это «{isDarkMode ? Темные стили: светлые стили}» в каждом сост. Если нет, то, возможно, каким-то образом можно сократить это положение
Ответ №1:
Вы можете сделать простой многоразовый компонент:
...import all the dependencies that you need
export const ThemeDependentText = ({children}) => {
return (
<Text style={{isDarkMode ? darkModeStyles: lightModeStyles}}> {children} </Text>
)
}
а затем вы можете использовать его в любом месте с пользовательским текстом, с условием темы, применяемым к каждому компоненту:
...
import { ThemeDependentText } from 'ThemeDependentText'
...
<ThemeDependentText> YAY </ThemeDependentText>