【发布时间】:2018-04-01 15:44:25
【问题描述】:
我很难学习反应,我不太明白如何解决这个问题。我有 Tournaments.js,它从 API 读取锦标赛名称并将它们显示为可点击的元素,并引用了 templates.js,我想在其中简单地显示被点击的元素的名称。
Tournaments.js:
import React, { Component } from "react";
const API = 'http://localhost:8080/api/tournaments';
class Tournaments extends Component {
constructor() {
super();
this.state = {
data: [],
}
}
componentDidMount() {
fetch(API)
.then((Response) => Response.json())
.then((findresponse) => {
console.log(findresponse)
this.setState({
data:findresponse,
})
})
}
testfun(e) {
var target = e.target;
console.log(target)
}
render() {
return(
<div class="container">
<div class="row">
<div class="col-md-6 col-md-offset-3">
<div class="jumbotron text-center">
{
this.state.data.map((dynamicData, key) =>
<div>
<a key={dynamicData.id} href={"/#/template"} onClick={this.testfun}>{dynamicData.name}</a>
</div>
)
}
</div>
</div>
</div>
</div>
)
}
}
export default Tournaments;
模板.js:
import React, { Component } from "react";
import Tournaments from "./Tournaments";
const API = 'http://localhost:8080/api/tournaments';
class template extends Component {
constructor() {
super();
this.state = {
data: [],
}
}
render() {
return(
<div>
<h1>clicked item</h1>
</div>
)
}
}
export default template;
我的 API 存储数据如下:
[{"name":"abc","id":1,"organizer":"kla"},{"name":"fsdfs","id":2,"organizer":"fsdf"}]
我尝试使用 onclick 来获取被点击的值,但不知道如何在 template.js 中显示它。
感谢您的帮助
【问题讨论】:
-
把你的
template.js放在Tournaments.js里面,把this.state. data写成props
标签: javascript html reactjs