[英]How to update state by useEffect in React?
我是 React 的新手。 我尝试用 2 种语言准备的价格计算器制作一个项目。 一切都基于工厂模式。 要更改语言,我使用了 i18next 框架。Static 网站上的文本元素动态变化,一切正常。问题是当我尝试更改为另一种语言时 object logo.text保持不变。 我知道 useState 渲染一次,那么我该如何使用 useEffect? 还是解决渲染问题的另一种解决方案? 我在 useState 的对象数组中放置了几个元素来计算。 看起来像这样:
const [logo, setLogo] = useState([
{
type: "tocheck",
checked: false,
name: "rights",
text: t("rightsLogo.text"),
price: 200,
},])
您需要使用language
state 或道具,并且需要使用依赖数组中的language
调用useEffect
并使用setLogo
中的 setLogo 更新logo
useEffect
。
useEffect(() => {
setLogo({
//your logo object here
}
}, [language])
您可以通过将logo
作为依赖变量来尝试使用效果来呈现它,如下所示:
useEffect = ({},[logo])
上面所做的基本上是每当徽标的 state 更改时,它就会重新呈现它。
您还需要实际使用setState
来更改徽标 state
试试这个,它可能会解决你的问题
useEffect(() => {
// thing you want to update
}, [JSON.stringi(logo)])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.