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