NervJS / nerv

A blazing fast React alternative, compatible with IE8 and React 16.
https://nerv.aotu.io
MIT License
5.42k stars 267 forks source link

fix(nerv-server): extend the method of renderVodeToString to support void and array vnode #158

Open huyang2229 opened 4 years ago

huyang2229 commented 4 years ago

这个 PR 做了什么? (简要描述所做更改) 使用Taro时,当用包裹多个条件表达式时,这时输出的快照不正确,原因在于Block包裹的子元素的vnode为Array类型且没有vType,而nerv-serverrenderVnodeToString没有对array类型的Vnode进行处理,具体截图如下:

image

image

打了断点,相应的输出截图如下所示: image

为了解决上述问题,在nerv-server库中的renderVnodeToString方法中增加了对Array类型vnode的支持,此外对为覆盖到的void类型的vnode也进行了处理,避免snapshot中出现undefined字眼引起困惑。

对变动增加了单测用例,并确保提交前所有测试用例均正常通过

这个 PR 是什么类型? (至少选择一个)

这个 PR 满足以下需求:

coveralls commented 4 years ago

Coverage Status

Coverage remained the same at 94.294% when pulling 96593ea6aa643a6af6534ddbe1adb0bb2585287b on huyang2229:master into 69e5c1ea39b5d623cf2e101852890d5aa665bc52 on NervJS:master.