首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在回调之后动态更改状态的对象值?

如何在回调之后动态更改状态的对象值?
EN

Stack Overflow用户
提问于 2022-03-31 02:33:26
回答 1查看 181关注 0票数 1

新手问题。请考虑下面的代码片段:

代码语言:javascript
复制
export const Parent = ({data}) => {
  const [myData, setShowResults] = useState({isOpen: false, title: 'test'})

  function handleCheck(evt) {
      console.log(evt.currentTarget.textContent);
      //how to change current myData.title with evt.currentTarget.textContent?

  }
  return (
    <div className='c-dropdown'>
        <Child data={data} isOpen={myData.isOpen} onCheck={handleCheck}/>
        <p>{myData.title}</p>
    </div>
  );
}

在handleCheck回调函数中,我接收到所需的信息,但我无法找到一种方法来使用新接收的信息更改myData.title。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-31 02:39:30

使用函数状态更新并浅复制前一个状态对象。

示例:

代码语言:javascript
复制
function handleCheck(evt) {
  const { textContent } = evt.currentTarget;
  console.log(textContent);
  setShowResults(data => ({
    ...data,            // <-- copy previous state
    title: textContent, // <-- update property
  }));
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71686263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档