我有一个组件如下:
export function MyComp() {
const [data, setData] = useState(['1', '2', '3'])
return (
<div>{ data.map(...) }</div>
)
}
我现在想要使用其他的地方对此组件MyComp的状态data做添加内容,请问应该如何做呢?是需要导出setData
?
我有一个组件如下:
export function MyComp() {
const [data, setData] = useState(['1', '2', '3'])
return (
<div>{ data.map(...) }</div>
)
}
我现在想要使用其他的地方对此组件MyComp的状态data做添加内容,请问应该如何做呢?是需要导出setData
?
你说的其他地方要具体一点
1.如果是父组件更新这个组件 用楼上所说的 ref , useImperativeHandle;
2.如果是不想干的地方或者某些函数内更新
2.1 :直接将 setData 挂载到 window 上;
2.2 :可利用发布订阅模式,在这个组件订阅一个事件进行更新;
2.3 :使用 mobx 或者 redux 第三方库
13 回答13k 阅读
8 回答2.7k 阅读
2 回答5.2k 阅读✓ 已解决
5 回答1.3k 阅读
3 回答2.3k 阅读✓ 已解决
3 回答902 阅读✓ 已解决
5 回答1.6k 阅读✓ 已解决
ref , useImperativeHandle 就是暴露给外部的方法。
其他的比如说
inject
,export default inject('Store')(observer(Comp));
,这个还可以拆分一个 store 的方案或者 eventBus 应该都可以