【问题标题】:React, what's the prefered way of updating state [duplicate]React,更新状态的首选方式是什么[重复]
【发布时间】:2017-07-16 06:23:28
【问题描述】:
state = {
  blog: {
    name: 'abc',
    score: 5
  }
}


var { blog } = this.state

// 你想做 blog.score = 5

1. blog = _.merge({}, blog, {
  score: 3
})


2. blog = {
    ...blog,
    score: 5
   }

3. blog = update(blog, {
     $set: {
       score: 5
     }
   }

this.setState({blog})

我不知道是否还有其他方法,但是有没有比这些更偏好的方法?

怎么样

state = {
  site: { 
    blog: {
      name: 'abc',
      score: 5
    }
  }
}


site = _.merge({}, site, {
  blog: {
    score: 5
  }
})


site = update(site, {
  blog: {
    $set: {
      score: 5
    }
  })


this.setState({site})

【问题讨论】:

    标签: reactjs immutability


    【解决方案1】:

    已经提供了将先前状态与新状态合并的实用程序。

    let newState = React.addons.update(this.state, {
      blog: {
        score: { $set: 5}
      }
    });
    this.setState(newState);
    

    More details about this addon

    【讨论】:

      【解决方案2】:

      _.merge 是一个可行的解决方案,但推荐的方法是使用 https://github.com/kolodny/immutability-helper,因为 react-addons-update 已被视为旧插件。

      【讨论】:

        猜你喜欢
        • 2014-07-20
        • 2021-12-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-27
        • 2021-08-24
        • 2020-07-20
        相关资源
        最近更新 更多