我的React应用程序中的useEffect有问题。我尝试用useEffect来翻译输入中的占位符,这是我的代码:
const [age, setAge] = useState("");
useEffect(() => {
if (localStorage.myLanguage[7] == "p") {
setAge("Translate One");
} else {
setAge("Translate Two");
}
});这是我的输入:
<input
onChange={handleChangeAge}
value={titleAge}
type="number"
min="1"
max="100"
id="age"
placeholder={age}
name="age"
required
></input>这是可行的,因为在本地存储中它会改变,但是在页面上,如果我想看到变化,我必须刷新页面。我需要这个工作后,当用户在选择器切换语言。你能帮帮我吗?
发布于 2020-04-22 04:25:45
试试这个:
useEffect(() => {
if (localStorage.myLanguage[7] == "p") {
setAge("Translate One");
} else {
setAge("Translate Two");
}
}, [localStorage.myLanguage]);它应该在每次数组localStorage.myLanguage更改时运行。让我知道如果它工作,因为我没有尝试它与您的代码,当然。如果抛出一个错误,指出长度已更改,则执行以下操作:
[localStorage.myLanguage.join(',')]https://stackoverflow.com/questions/61351197
复制相似问题