javascript - 在其他组件中使用 react this.state
问题描述
我的状态包含我的视频文件的缩略图,我有观看按钮,单击该按钮可以导航到新页面(组件)每个特定的缩略图都有一个名称和文件信息,我映射缩略图状态,如何传递文件信息到您单击监视按钮时导航的组件
{this.state.Poster.map(poster =>
<Col md="3 " className="" >
<Card className="card-user card-transparent">
<CardImg top src= {`/files/${poster.filename}`}>
</CardImg>
<CardText className="py-3 px-3">
<div className="card-description">
<h5 className="display-5 text-Movie-white text-center" >
{poster.metadata.name}
</h5>
<p className="text-center">{poster.metadata.Description}
</p>
</div>
</CardText>
<CardFooter>
<div className="button-container py-3"><a href="movie/">
<Button className="btn-fill btn-movie " color="primary" >
Watch
</Button></a>
</div>
</CardFooter>
</Card>
</Col>
)}
解决方案
尝试访问history
对象的push
方法,如下所示:
goTo: (route, state) => {
this.props.history.push(route, state);
}
...
// in your .map callback
<SomeComponentOrDom onClick={() => this.goTo('/SomewhereElse', { id: poster.id })}>
Something
</SomeComponentOrDom>
...
// in SomewhereElse
constructor(props) {
this.state = {
posterId: props.history.location.state.id
}
}
当然,您应该使您的代码更具防御性,并null
在不同的地方进行检查。
在这里你可以找到历史文档。
推荐阅读
- python - Python,在给定的摩尔斯电码中找到所有可能的字母组合
- java - OpenJDK 64 位服务器 VM 警告:选项 -Xverify:none 和 -noverify 在 JDK 13 中已弃用,可能会在未来版本中删除
- python - 加载预训练模型时出现 Keras 导入错误
- java - 无法使用 JDBC 读取特殊字符
- java - 有没有办法静态访问注释中的默认值?
- c++ - C++ 中奇怪的函数声明和 lambdas
- javascript - 'autoposition' 属性未在 JsPanel 之间应用
- javascript - 如何在第一个选项卡之后从网页选项卡获取单击事件的单元格值?
- c# - 如何为 .txt 文件中的每个添加行分配一个 ID 值(ASP.NET MVC / C#)
- jsp - 带有 JDBC 的 JSF 项目,我无法在 Servlet 上调用 DAO