Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

123456789101112131415161718192021222324252627
  1. import React, { useReducer } from 'react'
  2. const CHANGE_LOCALE = 'CHANGE_LOCALE'
  3. const mainContext = React.createContext()
  4. const reducer = (state, action) => {
  5. switch (action.type) {
  6. case CHANGE_LOCALE:
  7. return { ...state, locale: action.locale || 'zh' }
  8. default:
  9. return state
  10. }
  11. }
  12. const ContextProvider = (props) => {
  13. const [state, dispatch] = useReducer(reducer, {
  14. locale: 'zh'
  15. })
  16. return (
  17. <mainContext.Provider value={{ state, dispatch }}>
  18. {props.children}
  19. </mainContext.Provider>
  20. )
  21. }
  22. export { reducer, mainContext, ContextProvider }