我正在尝试在我的 React Native 应用程序中实现深色主题。 我正在使用 Redux,所以我考虑使用 Redux 状态来检查主题应该是浅色还是深色。
所以,我所做的是在样式中添加一个检查,如下所示:
const styles = StyleSheet.create({
pageContainer: {
display: 'flex',
flexDirection: 'column',
height: screenHeight,
backgroundColor: store.getState().reducer.darkMode ? theme.PRIMARY_COLOR_DARK : theme.PRIMARY_COLOR,
},
});
并且我添加了一个按钮,按下时会发送状态更改。 这是减速器和状态:
const initialState = {
items: [],
darkMode: true,
}
case ActionType.toggleTheme:
return {
...state,
darkMode: !(state.darkMode)
}
这是动作:
export const toggleTheme = () => {
return (dispatch) => {
dispatch({
type: ActionType.toggleTheme,
})
}
}
我想样式不会像 JSX 那样每次都重新渲染,所以它只是保持不变,但我不知道如何使它工作。