首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在反作用力中重新制作和导出/导入功能?

如何在反作用力中重新制作和导出/导入功能?
EN

Stack Overflow用户
提问于 2021-10-07 15:33:45
回答 1查看 103关注 0票数 0

我需要另一个组件中的useEffect (而不是直接连接到App.js的组件)。我如何重新制作并将其放入单独的文件中?它最好是定制钩子的自定义函数吗?这是App.js组件:

代码语言:javascript
复制
import React, {useState, useEffect} from 'react';
import { BrowserRouter as Router, Switch, Route } from "react-router-dom";
import axios from 'axios';
import Competitions from './components/Competitions';
import CompetitionForm from './components/CompetitionForm';
import Navigation from './components/Navigation';
import './styles/App.css'
 
const App = () => {
  const [competitions, setCompetitions] = useState([]);
  const [defaultCompetitionValue, setDefaultCompetitionValue] = useState({})

  useEffect(() => {
    axios.get('http://localhost:4000/app/getCompetitions')
      .then(res => res.data)
      .then(res => {
        for(let i = 0; i < res.length; i++) {
          competitions[i] = {
            "value": res[i].name,
            "label": res[i].name,
            "id": res[i]._id
          }
        };
        setCompetitions(competitions);
      })
      .then(() => setDefaultCompetitionValue({"value": competitions[0].value, "label": competitions[0].value}))
  }, [competitions]);

  if(competitions.length > 0 && defaultCompetitionValue) {
    return (
      <div className = "container">
        <Router>
          <div className = "sidebar">
            <Navigation />
          </div>
          <div className = "content">
            <Switch>
              <Route exact path = "/homepage">
                <Competitions
                  competitions = {competitions}
                  defaultCompetitionValue = {defaultCompetitionValue}
                />
              </Route>
              <Route exact path = "/CompetitionForm">
                <CompetitionForm competitions = {competitions}/>
              </Route>
            </Switch>
          </div>
        </Router>
      </div>
    )
  }
  return (<></>)
};

export default App;

我需要另一个组件中的useEffect (不是直接连接到App.js)。我如何重新制作并将其放入单独的文件中?它最好是定制钩子的自定义函数吗?

EN

回答 1

Stack Overflow用户

发布于 2021-10-07 16:26:10

useEffect是一个为功能组件提供反应的钩子。您可以在任何组件中使用它,从react导入,如下所示。您不需要从一个组件传递到另一个组件。

代码语言:javascript
复制
import { useEffect } from 'react';

有关更多细节,您可以在钩子上阅读他们的官方文档。https://reactjs.org/docs/hooks-reference.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69483933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档