vuereact-combined
vuereact-combined copied to clipboard
不支持使用useImperativeHandle向vue父组件暴露方法来获取react子组件的内部状态吗?
vue父组件传递ref,react子组件中使用useImperativeHandle暴露方法。 在vue父组件中可以获取到react子组件实例,但无法获取到最新的react状态(只能获取到初始化时候的状态)
@aiyun1010 给一个可复现问题的例子项目,顺便问一下,你们是否可以将vue2升级到vue3?在veaury中这个问题是解决了
我也遇到了相同的情况:
// 子组件(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 });
}
},