reactjs - React Js Redux 与 .net core 2.1 框架错误
问题描述
开始学习 React Js Redux。但面临以下错误。跟着下面的视频
https://www.youtube.com/watch?v=kXO97nDl5IA&t=915s
The above error occurred in the <Dialog> component:
in Dialog (at DeptList.js:100)
in div (at DeptList.js:87)
in DeptList (created by Connect(DeptList))
in Connect(DeptList) (created by Route)
in Route (at App.js:14)
in div (created by Col)
in Col (at Layout.js:14)
in div (created by Row)
in Row (at Layout.js:10)
in div (created by Grid)
in Grid (at Layout.js:9)
in Unknown (at App.js:10)
in Unknown (at src/index.js:26)
in Router (created by ConnectedRouter)
in ConnectedRouter (at src/index.js:25)
in Provider (at src/index.js:24)
考虑向树中添加错误边界以自定义错误处理行为。. index.js:2177 未捕获的错误:元素类型无效:需要字符串(对于内置组件)或类/函数(对于复合组件),但得到:未定义。您可能忘记从定义组件的文件中导出组件,或者您可能混淆了默认导入和命名导入。如果我在代码下面评论,它正在工作
<Dialog visible={this.state.displayDialog} style={{ 'width': '380px' }}
header="Dept Details" modal={true}
footer={dialogFooter}
onHide={() => this.setState({ displayDialog: false })}>
{
this.state.dept &&
<div className="p-grid p-fluid">
<div>
<label htmlFor="DName">Name</label>
</div>
<div>
<InputText id="DName" onChange={(e) => { this.updateProperty('DName', e.target.value) }}
value={this.state.dept.DName} />
</div>
<div style={{ paddingTop: '10px' }}>
<label htmlFor="Location">Location</label>
</div>
<div>
<InputText id="Location" onChange={(e) => { this.updateProperty('Location', e.target.value) }}
value={this.state.dept.Location} />
</div>
</div>
}
</Dialog>
解决方案
正如错误所说,您在那里用作<Component>
(JSX)的组件之一实际上是undefined
. 它还会继续告诉您行号,但您没有添加,所以我不知道发生在哪里。就像错误所说的那样,undefined
通过给定的行号识别组件,并检查您是否正确导入它并从另一个文件正确导出它。如果您需要帮助,请将您的导入和导出添加到此问题。
通常,您正在观看的教程使用的是相当古老的 React、Redux 以及 react-redux。现在你只会使用connect
类组件,而在现代 React 代码中你几乎不会编写任何类组件。另外,你不应该手写“plain redux”,而应该使用官方的 Redux Toolkit。
我不能告诉你更现代的 React 教程,但对于 Redux,你可能想要遵循官方的“Redux Essentials”教程
此外,除了可能的初始设置之外,实际上并没有任何特定于“将 React/Redux 与任何服务器端框架一起使用”的内容(除非会有特定的绑定,这里似乎不是这种情况)。因此,您不仅限于“.net 核心教程”。