Преглед изворни кода

fix(ssr/reactivity): fix array setting error at created in ssr [#12632] (#12633)

fix #12632
blackie пре 3 година
родитељ
комит
ca7daefaa1
2 измењених фајлова са 5 додато и 1 уклоњено
  1. 4 0
      packages/server-renderer/test/ssr-reactivity.spec.ts
  2. 1 1
      src/core/observer/index.ts

+ 4 - 0
packages/server-renderer/test/ssr-reactivity.spec.ts

@@ -93,6 +93,10 @@ describe('SSR Reactive', () => {
 
     set(state.value, 1, {})
     expect(isReactive(state.value[1])).toBe(true)
+
+    const rawArr = []
+    set(rawArr, 1, {})
+    expect(isReactive(rawArr[1])).toBe(false)
   })
 
   // #550

+ 1 - 1
src/core/observer/index.ts

@@ -241,7 +241,7 @@ export function set(
     target.length = Math.max(target.length, key)
     target.splice(key, 1, val)
     // when mocking for SSR, array methods are not hijacked
-    if (!ob.shallow && ob.mock) {
+    if (ob && !ob.shallow && ob.mock) {
       observe(val, false, true)
     }
     return val