reactjs - 如何在反应中创建指向组件的链接?
问题描述
当我单击一个项目时,我希望我的组件的内容显示在不同的视图中。我不明白如何从渲染中调用组件。我想像这个Myitem。为了在 React 中做到这一点,我按照以下方式进行:
content(item) {
var me = this.state;
return(
<Row>
<Col xs={12} sm={9} md={9} lg={9}>
<MyComponent item={item}} />
</Col>
</Row>
)
}
render() {
var me = this.state;
return(
<Fragment>
<Row>
{ITEMS.map((item, ind) => {
return(
<Col key={ind} xs={12} sm={6} md={4} lg={3}>
<div onClick={this.content.bind(this, item.item)}>
</div>
</Col>
)
})}
</Row>
{this.content()?this.content():""}
</Fragment>
);
但列表和内容显示在同一屏幕中。
谢谢你的帮助。
解决方案
简而言之,使用反应路由、导航到其他组件、将数据传递给导航组件的良好示例应用程序。
import React from "react";
import { render } from "react-dom";
import { BrowserRouter as Router, Route, Link } from "react-router-dom";
const arr = [{id:1,name:'react'},{id:2,name:'redux'}]
const BasicExample = () =>
<Router>
<div>
<ul>
<li>
<Link to="/">Home</Link>
</li>
<li>
<Link to="/about">About</Link>
</li>
</ul>
<hr />
<Route exact path="/" component={Home} />
<Route path="/about" component={About} />
<Route path="/detail" component={Detail} />
</div>
</Router>;
const About = () => (
<div>
<h2>About</h2>
</div>
);
const Home = () => (
<div>
<h2>Home</h2>
{arr.map(a=>
<div key={a.id}>
<strong>{a.id}</strong>
<Link to={{
pathname:"/detail",
state: a
}}>{a.name}</Link>
</div>
)}
</div>
);
const Detail=(props)=><h3>Detail-({props.location.state.id}--{props.location.state.name})</h3>
推荐阅读
- flutter - 在 Flutter 应用中使用 Stream 填充 TextEditingController
- javascript - 用 am pm 格式化字符串日期
- node.js - mongodb 接受所有数据类型值但是定义的类型是数字它应该只接受数字类型
- python - 如何将 Splunk 自定义报告命令的输出通过管道传输到另一个 Splunk 命令?
- javascript - 将 plotly 条形图保存到 json 并导入 html 文件会删除条形标签
- html - 如何将我的表情符号与标题文本对齐?
- java - 无法在 Spring 2.5 App 上运行 Java 7。说它需要 Java 1.5 或更高版本
- javascript - 无法使用 @kubernetes/client-node 获取集群内的所有作业
- java - 如何使用 Kotlin 和 Retrofit 在 Android 中绕过 HTTPS SSL 证书验证
- python - 无法使用 Python Selenium 在跨度类中定位元素