在ReactJS中与setState共享函数的最佳方式?

kknvjkwl  于 2023-03-17  发布在  React
关注(0)|答案(1)|浏览(113)

如果里面的函数涉及setState,那么共享函数的最佳方式是什么?我有一个用户授权函数,可以在所有页面上共享。
我有一个路由页面如下:

function App() {
  return (
    <BrowserRouter>
      <Switch>
        <Route exact path="/">
          <Login/>
        </Route>
        <Route path="/pageA">
          <Navbar/>
          <Page content={PageA}/>
        </Route>
        <Route path="/pageB">
          <Navbar/>
          <Page content={PageB}/>
        </Route>
...

假设PageA和PageB在内部具有此函数

const axiosJWT = axios.create();

    axiosJWT.interceptors.request.use(async (config) => {
        const currentDate = new Date();
        if (expire * 1000 < currentDate.getTime()) {
            const response = await axios.get(`http://${host}/token`);
            config.headers.Authorization = `Bearer ${response.data.accessToken}`;
            setToken(response.data.accessToken);
            const decoded = jwt_decode(response.data.accessToken);
            setName(decoded.username);
            setExpire(decoded.exp);
        }
        return config;
    }, (error) => {
        return Promise.reject(error);
    });

正如你所看到的,我有setState需要完成。如果我必须为共享函数设置一个Util.js,唯一的方法是使用输入参数和返回值?我是在每个页面上还是在Util.js中设置const axiosJWT?

ddrv8njm

ddrv8njm1#

如果您在编码时需要多次使用某个函数,建议将其提取为公共函数并保存在util.js中。

相关问题