0

我有一个语言更改下拉列表。当我选择一种语言并返回其他屏幕时,语言不会改变。如果我正在保存文件,那么在它改变之后。每次我保存文件时,语言都会改变。这背后的问题是什么?

language_screen.js:

  const LanguageScreen = (props) => {
  const dispatch = useDispatch();
  const [open, setOpen] = useState(false);
  const [value, setValue] = useState(null);
  const [items, setItems] = useState([
    { label: "English", value: "en" },
    { label: "Hebrew", value: "he" },
  ]);
  const selectedLanguage = useSelector(
    (state) => state.changeLangReducer.isEnabled
  );
  const languageValue = () => {
    if (selectedLanguage) {
      dispatch(disableHe());
    } else {
      dispatch(enableHe());
    }
  };
  i18n.locale = selectedLanguage ? "he" : "en";

  return (
    <Container>
      <DropDownPicker
        onChangeValue={languageValue}
        value={selectedLanguage}
        placeholder="Select a Language"
        open={open}
        value={value}
        items={items}
        setOpen={setOpen}
        setValue={setValue}
        setItems={setItems}
      />
    </Container>
  );
};

change_lang_reducer.js:

const initialState = {
  isEnabled: false,
};
const changeLangReducer = (state = initialState, action) => {
  switch (action.type) {
    case ENABLE_HE:
      return { isEnabled: true };
    case DISABLE_HE:
      return { isEnabled: false };
  }
  return state;
};
4

0 回答 0