我正在考虑在现有的React项目中引入Immutable JS。该项目到处都是用selectn实用程序包装的深层嵌套引用。

例如:

// returns order.id or undefined if product or order or id are undefined
if(selectn('product.order.id',this.state)) {
  //...
}


是否有不可变的JS API方法来检查深度嵌套的结构,并返回请求的属性或未定义的属性?

最佳答案

这是一个例子。

var t = Immutable.fromJS({a: { aa: { aaa: 'thing' } } });


我要a.aa.aaa

t.getIn(['a','aa','aaa']);
// returns "thing"


如果我尝试获得a.aa.bbb怎么办?

t.getIn(['a', 'aa', 'bbb']);
// Returns undefined.


这是getIn()的API:getIn() API

09-11 19:07