updateSlot的问题

来源:5-4 reconcilerChildren-array

MeSKiL

2019-06-04

if (typeof newChild === 'string' || typeof newChild === 'number') {
      if (key !== null) {
        return null;
      }
      return updateTextNode(
        returnFiber,
        oldFiber,
        '' + newChild,
        expirationTime,
      );

这里我理解的是如果key不是空,说明原有的节点不是文字节点,则不能复用,则return null。如果key为空才return updateTextNode。key为空则说明老的原有的节点是文字节点可以复用,所以return updateTextNode。那就和注释的意思不同了,代码的意思是原本是文字节点,才可以复用的意思吧?

写回答

1回答

Jokcy

2019-06-04

你指的注释是怎么说的?跟你的理解有什么区别?我看了一下,你的理解应该没什么问题

1
2
Jokcy
回复
MeSKiL
你这英文断句有问题啊,If the previous node is implicitly keyed we can continue to replace 这里应该是连在一起的,也就是说只有隐式key的时候可以直接复用,什么叫隐式呢,也就是不是在写代码的时候写上 key=xxx 的时候
2019-06-06
共2条回复

React源码深度解析 高级前端工程师必备技能

掌握React源码,让你的开发水平没有上限,更不惧前端未来的到来

1749 学习 · 336 问题

查看课程