Javascript 如何从React中的高阶组件获取异步数据

Javascript 如何从React中的高阶组件获取异步数据,javascript,reactjs,higher-order-components,use-effect,react-functional-component,Javascript,Reactjs,Higher Order Components,Use Effect,React Functional Component,如何进行API调用(可能是异步的)来获取数据,以便能够进一步使用它。类本身不呈现任何内容 我不熟悉功能组件,正在尝试 -在AppForm中获取数据 -将其作为参数发送到fun2() 如有任何建议,我们将不胜感激。代码片段会更有帮助。提前谢谢 const AppForm = ({ x, y, z, id, ...props }) => ( <InnerForm input={x ? fun1(x) : fun2()} isEqual={(a, b) => (

如何进行API调用(可能是异步的)来获取数据,以便能够进一步使用它。类本身不呈现任何内容

我不熟悉功能组件,正在尝试 -在AppForm中获取数据 -将其作为参数发送到fun2()

如有任何建议,我们将不胜感激。代码片段会更有帮助。提前谢谢

const AppForm = ({ x, y, z, id, ...props }) => (

  <InnerForm
    input={x ? fun1(x) : fun2()}
    isEqual={(a, b) => (a && a.id) === (b && b.id)}
  >

    {val => (
      <MainForm
        x={x}
        y={y}
        z={z}
        initialValues={val}
        {...props}
      />
    )}
  </InnerForm>
);
AppForm.propTypes = {
x: PropTypes.object,
y: PropTypes.object,
z: PropTypes.object,
}
const-AppForm=({x,y,z,id,…props})=>(
(a&&a.id)==(b&&b.id)}
>
{val=>(
)}
);
AppForm.propTypes={
x:PropTypes.object,
y:PropTypes.object,
z:PropTypes.object,
}

使用useEffect my react钩子,您可以使用useState钩子进行api调用并将数据设置为状态。接收到数据后,可以通过传入所需的值来渲染组件

const AppForm = ({ x, y, z, id, ...props }) => {
    const [data, setData] = useState(null);

    useEffect(() => {
        axios.get('path').then((res) => setData(res));
    }, []);

    if(!data) return <Loading />
    return (
      <InnerForm
        input={x ? fun1(x) : fun2(data)}
        isEqual={(a, b) => (a && a.id) === (b && b.id)}
      >

        {val => (
          <MainForm
            x={x}
            y={y}
            z={z}
            initialValues={val}
            {...props}
          />
        )}
      </InnerForm>
    )

};
const-AppForm=({x,y,z,id,…props})=>{
const[data,setData]=useState(null);
useffect(()=>{
get('path')。然后((res)=>setData(res));
}, []);
如果(!数据)返回
返回(
(a&&a.id)==(b&&b.id)}
>
{val=>(
)}
)
};

这是否回答了您的问题?我确实看过useEffect()。我不知道如何在我的项目中使用它,因为我嵌入了另一个类,并且没有render()。任何建议都会有帮助。谢谢谢谢你的建议。我试过了,但是第一行的语法有一些问题,
const-AppForm=({x,y,z,id,…props})=>{
。错误为TypeError:Object(…)不是函数。我很难弄清楚这样一个类的语法。您使用的是React v16.8或更高版本,对吗?如果不是,我们需要使用类模式来实现上述逻辑。非常感谢。我使用了v16.2并对其进行了升级。再次感谢!