首页 > 代码库 > [Immutable.js] Updating nested values with ImmutableJS
[Immutable.js] Updating nested values with ImmutableJS
The key to being productive with Immutable JS is understanding how to update values that are nested. Using setIn
you can place a new value directly into an existing or new path. If you need access to the previous value before setting the new one, you can use updateIn
instead. updateIn
accepts the same path lookups as setIn
, but gives you a callback function instead so that you can use the previous value however you wish and return an updated version.
const {Map, List, fromJS} = Immutable;const state = fromJS({ home: { loading: false, messages: [ { type: ‘info‘, message: ‘Welcome to our website‘ } ] }});// Add a new message with updateInconst updated = state.updateIn([‘home‘, ‘messages‘], msgs => { return msgs.push(Map({type: ‘info‘, message: ‘Hi there!‘}));});console.log(updated.getIn([‘home‘, ‘messages‘]).toJS());// Update a message in a known pathconst updated2 = state.setIn([‘home‘, ‘messages‘, 0, ‘message‘], ‘new message!‘);console.log(updated2.getIn([‘home‘, ‘messages‘]).toJS());
[Immutable.js] Updating nested values with ImmutableJS
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。