javascript - 发送数据时 history.push() 不起作用
问题描述
我在 Main 组件中定义了一个路由:
<Route path="/user/:action?/:name?" component={DataForm} />
MainDataCard 组件:
var data = [ {name: 'abc", label: "ABC", path:"/assets/data/source1.jpg" },
{name: 'pqr", label: "PQR", path:"/assets/data/source2.jpg" },
{name: 'xyz", label: "XYZ", path:"/assets/data/source3.jpg" },
]
我正在遍历数据数组和每张卡片的 onClick,我将导航到另一个组件,即 DataForm。推送时,我需要发送选定的卡片对象。
{data.map((card, index) => {
return (
<Card
key={index}
className="cardStyle"
onClick={() => {
this.onClickForm(card);
}}
>
<CardContent className="cardContent">
<Grid container>
<Grid item md={12}>
<img src={card.path} alt="card" />
</Grid>
<Grid item md={12}>
<Typography color="textSecondary" gutterBottom>
{card.name}
</Typography>
</Grid>
</Grid>
</CardContent>
</Card>
onClickForm = card => {
const {action} = this.props; // action value can be add/update. Currently action = "add"
this.props.history.push({
pathname: `/user/${action}/${card.label}`,
state: { card: card }
});
};
在 DataForm 组件中,它显示该卡是未定义的。这意味着数据没有被发送到 DataForm 组件。为什么会这样?
提前致谢。
解决方案
推荐阅读
- iis - IIS中基于URL将域名绑定到网站
- reactjs - 我在 Next.js 中的动态路由的动态 manifest.json
- python - 如何使用 Python 从 Jupyter Notebook 将 Plotly 生成的交互式图形导出为 HTML 文件?
- xero-api - 新的 API 更新返回的代码 BADDEBT、CAPIMPORTS、CIUINPUT 与 TaxType 或 ReportTaxType 的 API 状态不匹配
- c# - 不使用 ASP.NET Core 时如何在 C# 中使用配置?
- powershell - 使用多个 If/ElseIf 语句还是使用具有多个 OR 条件的单个 If 语句更有效?
- bash - 忽略差异中的正则表达式
- ios - 链接命令后的 React-native iOS 构建错误
- sql - 如何在postgresql中从当前日期生成最后7个日期的系列?
- javascript - 更新包含flask-socketio中消息列表的字典时出现线程错误异常