Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.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
Reactjs 类型脚本错误:JSX元素类型';树&x27;没有任何构造或调用签名。I';我无法导入自己的组件_Reactjs_Typescript - Fatal编程技术网

Reactjs 类型脚本错误:JSX元素类型';树&x27;没有任何构造或调用签名。I';我无法导入自己的组件

Reactjs 类型脚本错误:JSX元素类型';树&x27;没有任何构造或调用签名。I';我无法导入自己的组件,reactjs,typescript,Reactjs,Typescript,当我尝试导入自己的组件时,出现错误: TS2604:JSX元素类型“Tree”没有任何构造或调用签名 为什么??发生了什么事?如何向TS提供我的组件的签名 我的密码 文件导入: //App.tsx 从“react dom”导入react dom; 从“./index”导入树;// 您要导出的不是组件,而是元素(通过…创建提供程序组件产生的元素) 要使其成为组件,请使其成为返回结构的函数: export default function Tree() { // ------------^^^^^^

当我尝试导入自己的组件时,出现错误:

TS2604:JSX元素类型“Tree”没有任何构造或调用签名

为什么??发生了什么事?如何向TS提供我的
组件的签名

我的密码

文件导入:

//App.tsx
从“react dom”导入react dom;

从“./index”导入树;// 您要导出的不是组件,而是元素(通过
创建提供程序组件产生的元素)

要使其成为组件,请使其成为返回结构的函数:

export default function Tree() {
// ------------^^^^^^^^^^^^^^^^^
  return (
    <Provider store={store}>
      <Master>
        <ErrorBoundary>
          <Router>
            <Switch>
              <Route exact path='/' component={ Home } />
              <Route component={NotFound}/>
            </Switch>
          </Router>
        </ErrorBoundary>
      </Master>
    </Provider>
  );
}; // ***

在这两种情况下,函数都有一个名称(
),这对调试很有用。(是的,箭头函数将::-)

您需要将树组件包装成如下函数:

// index.js

export default () => (
    <Provider store={store}>
      <Master>
        <ErrorBoundary>
          <Router>
            <Switch>
              <Route exact path='/' component={ Home } />
              <Route component={NotFound}/>
            </Switch>
          </Router>
        </ErrorBoundary>
      </Master>
    </Provider>
);
//index.js
导出默认值()=>(
);

导出这样一个表达式的问题是,该函数的名称为
default
(或者可能根本没有名称,这取决于是否正在使用绑定器,如果是,它如何翻译
export
),这在调试堆栈跟踪等方面不是很有用。完全同意这一点,但我觉得这正是他试图实现的目标(因为他最初尝试导出的元素也是匿名的),但元素实际上没有名称,也不会出现在堆栈跟踪中。:-)非常确定“导出默认常量树”不是有效语法,但“常量树”后跟“导出默认树”将是;)@阿诺·罗切斯-多哈!谢谢我总是忘记语法上的差距。。。
// index.js

export default () => (
    <Provider store={store}>
      <Master>
        <ErrorBoundary>
          <Router>
            <Switch>
              <Route exact path='/' component={ Home } />
              <Route component={NotFound}/>
            </Switch>
          </Router>
        </ErrorBoundary>
      </Master>
    </Provider>
);