react的diff算法问题

开源码发现如下代码
这里的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)
}
阅读 1.1k
1 个回答
  return typeof key === 'string'
    ? item[key]
    : key(item)

keystring 类型时返回 item[key],否则 按 React 的设计,此时 key 将会是一个函数 从而返回 key(item)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题