You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Legend State v3.0.0-beta.31中syncedCrud的create函数未触发问题咨询

Legend State v3.0.0-beta.31中syncedCrud的create函数未触发问题咨询

大家好,我在使用Legend State v3.0.0-beta.31的syncedCrud功能时碰到了个棘手的问题,想请教下社区的各位大佬。

先给大家看下我目前的代码实现:

export const courses$ = observable<Record<number, Course>>(
  syncedCrud({
    list: async () => {
      const result = await apiFetchCourses()
      if (!result.length) throw new Error('No courses found')
      return result // type of result: Course[]
    },
    create: (course) => {
      console.log('create course', course)
      return apiCreateCourseForLegend(course)
    },
    mode: 'set',
    persist: {
      name: 'globalCourseStore',
      plugin: observablePersistAsyncStorage({ AsyncStorage })
    }
  })
)

根据官方文档的描述:

create函数会在有新对象被添加到observable时自动调用

但实际操作时,我试了好几种向courses$中添加新courseEntity的方式,create函数都完全没触发:

  • 第一种直接通过ID设置:
courses$[courseEntity.id].set(courseEntity)
  • 第二种用set方法结合函数更新:
courses$.set((prev) => {
  return { ...prev, [courseEntity.id]: courseEntity }
})
  • 第三种用assign方法批量添加:
courses$.assign({[courseEntity.id]: courseEntity})

我原本以为只要是向这个syncedCrud包装的observable里新增条目,就会自动触发create去调用后端接口,但现在不管哪种写法都没效果。有没有朋友遇到过类似的情况,或者能帮我指出是不是我对syncedCrud的工作逻辑理解错了呀?

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 07:39:36