Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 你能有一个异步功能组件吗_Javascript_Reactjs - Fatal编程技术网

Javascript 你能有一个异步功能组件吗

Javascript 你能有一个异步功能组件吗,javascript,reactjs,Javascript,Reactjs,您可以使用异步功能组件,如: const MyComponent = async ({ children }) => {return null} 我得到了这个错误: 错误:对象作为子对象无效 不,你不能。您可以使用以下帮助器实现相同的结果: function makeAsyncComponent(fn) { return React.useMemo(function Component(props) { const [result, setResult] = React.us

您可以使用异步功能组件,如:

const MyComponent = async ({ children }) => {return null}
我得到了这个错误:

错误:对象作为子对象无效


不,你不能。您可以使用以下帮助器实现相同的结果:

function makeAsyncComponent(fn) {
  return React.useMemo(function Component(props) {
    const [result, setResult] = React.useState(null);

    React.useEffect(() => {
       fn().then(result => setResult(result))
    });

    return result;
  });
}

const MyComponent = makeAsyncComponent(async ({ children }) => {return null})

问题是为什么需要异步功能组件,根据我的理解,拥有一个异步组件将使其脱离主呈现循环,而函数组件(或类组件中的呈现方法)无法返回承诺。你为什么要这么做?可能有不同的方法来实现你的目标