【问题标题】:react update an element in a state反应更新状态中的元素
【发布时间】:2021-05-26 11:47:47
【问题描述】:

我有这样的状态

[{text: 'this is a text', time:0},{text: 'this is a another text', time:0}]

如何将时间加一?

我正在尝试这样的事情:

setState((element)=>{...element,time:time+1})

setState(state.map((element)=>{...element,time:element.time+1}))

这是一个简单的问题,我只是因为某种原因忘记了怎么做

【问题讨论】:

    标签: javascript reactjs callback


    【解决方案1】:

    你的状态应该是一个对象 假设你的状态是

    state = {
      arr: [{ text: 'this is a text', time: 0 }, { text: 'this is a another text', time: 0 }],
    };
    

    然后你可以像这样修改你的状态:

    this.setState(({ arr }) => ({ arr: arr.map((item) => ({ ...item, time: item.time + 1 })) }));
    

    【讨论】:

    • 我正在使用 useState 钩子,希望它只是一个数组,还有其他方法吗?
    • 好吧,这似乎工作 let increm = [] state.map((element)=>increm.push({text:th.text,time:element.time+1})) setState(增量)
    猜你喜欢
    • 1970-01-01
    • 2021-10-23
    • 1970-01-01
    • 2022-01-23
    • 2018-03-28
    • 1970-01-01
    • 2020-09-19
    • 2021-07-05
    相关资源
    最近更新 更多