繁体   English   中英

如何在 React 中通过 useEffect 更新 state?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM