导出useState挂钩

时间:2020-05-12 12:25:40

标签: react-native

我将如何导出useState挂钩? 导出变量很简单,但是我不确定如何使用useState。

import React, { useState } from "react";

export const Storage = () => {
    [data, setData] = useState("")
}

如果我尝试将Storage导入某处并运行Storage.setData(),则会收到“ setData不是函数错误。

1 个答案:

答案 0 :(得分:0)

我认为你需要在其他地方使用组件状态,所以为了做到这一点,你可以在 React 中使用 useContext 并创建一个提供者,你可以将 setData 函数作为值传递给它,并在组件树的任何位置使用它

import React, { useState, createContext } from 'react';

export const DataContext = createContext('');

export const DataProvider = ({children}) => {
const [data, setData] = useState("");
return (
<DataContext.Provider value={{ setData }}>
  {children}
</DataContext.Provider>
);
}

现在您可以简单地在子组件中的任何位置使用 setData。我希望它能解决问题。

在需要使用它的其他文件中,您可以简单地将状态值更新为

export const Component = () => {
const {setData} = useContext(DataContext);
useEffect(()=>{
setData('updated data');
},[])
}
return(<>children component updating the state</>);
}