当 Redux 状态改变时重新渲染样式

时间:2021-07-13 19:10:55

标签: react-native redux

我正在尝试在我的 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 那样每次都重新渲染,所以它只是保持不变,但我不知道如何使它工作。

0 个答案:

没有答案