zoukankan      html  css  js  c++  java
  • [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 updateIn
    const 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 path
    const updated2 = state.setIn(['home', 'messages', 0, 'message'], 'new message!');
    console.log(updated2.getIn(['home', 'messages']).toJS());
  • 相关阅读:
    BOM与DOM
    CSS中的长度单位及颜色表示
    关于display:grid layout
    关于position
    简单的注册表单
    We重邮
    APP定制开发的完整流程
    国内移动广告平台的混战大盘点
    Mobile App Monetization, Analysis & Mediation – Google AdMob
    代码优化
  • 原文地址:https://www.cnblogs.com/Answer1215/p/6040259.html
Copyright © 2011-2022 走看看