vuereact-combined icon indicating copy to clipboard operation
vuereact-combined copied to clipboard

不支持使用useImperativeHandle向vue父组件暴露方法来获取react子组件的内部状态吗?

Open aiyun1010 opened this issue 11 months ago • 2 comments

vue父组件传递ref,react子组件中使用useImperativeHandle暴露方法。 在vue父组件中可以获取到react子组件实例,但无法获取到最新的react状态(只能获取到初始化时候的状态)

aiyun1010 avatar Dec 09 '24 03:12 aiyun1010

@aiyun1010 给一个可复现问题的例子项目,顺便问一下,你们是否可以将vue2升级到vue3?在veaury中这个问题是解决了

devilwjp avatar Dec 09 '24 03:12 devilwjp

我也遇到了相同的情况:

// 子组件(react):
useImperativeHandle(
    ref,
    () => ({
        query({ selectedWays, rangeTime }) {
            // ❌异常:当direction, stage在子组件内部变更时,父组件(vue)调用该query拿到的还是初始化的状态
            console.log(direction, stage)
        },
    }),
    [direction, stage]
);

// 父组件(vue):
<div>
      <ChildComp ref="childRef" />
</div>

handleQuery(curRangeTime, selected) {
    if (this.$refs.doorRef) {
        this.$refs.childRef.query({ selectedWays: [...selected], rangeTime: curRangeTime });
    }
},

Rmttf avatar Dec 18 '24 06:12 Rmttf