javascript - 未捕获的类型错误:无法读取未定义的属性“道具”
问题描述
我在我的 Addpage 上收到此错误:
未捕获的类型错误:无法读取未定义的属性“道具”
我正试图从这个 Stack Overflow 帖子中的组件返回。
如何从我的 Addpage 返回?
const onClick = () => {
this.props.dispatch({ type: 'AMENITIES_BACK', id: roomsManager.items.parentId })
}
const AmenitiesAdd = ({ handleSubmit, pristine, reset, submitting }) => {
return (
<form onSubmit={handleSubmit(onSubmit)}>
<Field label="amenities" name="newAmenities" component={InputText} validate={validateNotEmpty} type="text" />
<Field label="description" name="newDescription" component={InputText} validate={validateNotEmpty} type="text" />
<button type="submit">Submit</button>
<button type="button" onClick={onClick}>Back</button>
</form>
);
}
export default reduxForm({
form: 'AmenitiesAdd'
})(AmenitiesAdd)
解决方案
使用路由器导入
import { withRouter } from 'react-router-dom';
将您的组件导出为:
export withRouter(nameofcomponent)
例如,单击按钮时,调用 goBack:
<button onClick={this.props.history.goBack}>Back</button>
在 react-router-dom v4.3 上测试
推荐阅读
- php - 如何更改mysql查询中的日期格式
- python - 无法在 PyCharm 中打开 csv 文件 找不到文件
- python - 使用 Selenium 以不一致的顺序处理数据以进行 Web 抓取
- c# - .net 核心 - MVC webapp 不会显示我的 JSON 集合
- python - python3.x - 尝试使用 zipfile 和 pathlib 模块打开目录时出现 PermissionError
- c++ - 求和 int 乘以 double 时的欠/过近似
- cordova - `cordova run --list` 导致 ECONNREFUSED
- node.js - 如何在 cPanel 上连接 node.js 后端和 react.js 前端?
- react-native - 在本机反应中传递元素的位置
- react-native - React Navigation v5 使用抽屉过滤屏幕上的细节