Skip to content

[Bug] useRef 莫名丢失透传参数,memo失效 #362

@fantasticsoul

Description

@fantasticsoul

最近在做一个集atomsignaldep collection为一体的状态库helux,目标是适配所有类 react 框架,目前 react 自身和preact 适配都完美运行,但适配fre时目前遇到两个怪问题,均可以从下面3个链接对比发现问题

react 演示链接:https://codesandbox.io/s/helux-react-starter-ts-539scq
preact 演示链接:https://codesandbox.io/s/helux-preact-starter-dnyzpy
fre 演示链接:https://codesandbox.io/s/helux-fre-starter-js-lqw4nc

1 useRef 莫名丢失透传参数

访问上述fre 演示链接,选择 Signal 然后点击 changeAtom,第一次正常,第二次报错
image
报错截图如下
image
useInsCtx内部用到了useRef,useRef 第二次调用莫名丢失透传参数(注:此例子 reactpreact 均正常)

注:此例子 reactpreact 均正常,可访问上述preact 或 react 演示链接选择 Signal 然后多次点击 changeAtom

2 memo失效

访问上述fre 演示链接,选择 ListCase 然后按下图所示操作 12 3 步骤,多添加几个 ListItem 后,挑选其中一个点击 changeName
image
可发现所有子项的update at 变化了,说明都在更新
image

注:此例子 reactpreact 均正常,可访问上述 preact 或 react 演示链接选择 ListCase 然后做同样操作,不会全部更新 ListItem

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions