定义context
import React, { createContext, forwardRef } from 'react';
const TabContext = createContext();
export function withTab(Composed) {
function ComposedWithTab(props, ref) {
return (
<TabContext.Consumer>{({tabList, setTabList}) => <Composed {...props} tabList={tabList} setTabList={setTabList} ref={ref} />}</TabContext.Consumer>
);
}
return forwardRef(ComposedWithTab);
}
export default TabContext;
提供数据组件
const [tabList, setTabList] = useState([]);
<TabContext.Provider value={{tabList, setTabList}}>组件</TabContext.Provider>
函数组件使用
const {tabList, setTabList} = useContext(TabContext);
类组件使用(props中可以拿到)
@withTab
class AAA extends Component