请问如果多次调用 React.Children.map 时,traverseContextPool 是怎么变化的,没看到有重新赋 [] 的语句
来源:2-11 children
Dalei666
2019-05-18
多次调用 map 的话 pool 不是共用的吗?那下次再调用 map 的时候 poll 里面没有上次留下来的状态吗?
写回答
3回答
-
pool在每一个节点使用完之后都会被返回并且清空
112019-05-26 -
MeSKiL
2019-05-20
releaseTraverseContext(traverseContext);调用完了mapIntoWithKeyPrefixInternal方法的最后,pool是会被清空的。主要是用来做多层嵌套数组的时候pool才有实际的用处。
112019-05-26 -
Tao_53755083
2020-05-31
感觉下来 池子应该共用的, 每次调用都会先判断需不需pop 处理完后再 清空对象 重新push 一个属性清空的对象进去 这样应该是能够避免每次重新申请对象 销毁对象造成的额外开销。 至于 池子长度10 好像是给到 mapSingleChildIntoContext 用来做一个大的循环递归调用准备的。
00
相似问题