开源码发现如下代码
这里的item是新或旧孩子节点,key应该是string ‘key’,item[key]还可以从代码上来理解,但是key(item)就确实不能理解了,key又不是一个函数 为什么能这么写
function getItemKey (item, key) {
//void 666 = undefined 666纯属开玩笑
if (!item || !key) return void 666
return typeof key === 'string'
? item[key]
: key(item)
}
当
key
是string
类型时返回item[key]
,否则 按 React 的设计,此时key
将会是一个函数 从而返回key(item)
。