【发布时间】:2018-09-12 17:16:18
【问题描述】:
我在组件 A 中获得了正确的数据,现在我需要将该值传递给组件 B。在第一个组件中是一个单击事件,它接收单击的项目,现在我需要将该单击的值传递给组件 B为了进一步格式化。
class ReportsData extends Component {
constructor(props) {
super(props)
this.state = {
value: null
}
render() {
const {reports, employees} = this.props;
let sortedReports = _.sortBy(reports, function(o) { return new moment(o.date); }).reverse();
const handleClick = (item) => {
return item // --> 2011 --> I NEED TO TAKE THIS VALUE AND PASS IT TO ReporstDetails COMPONENT // When I do setState = ({value: item}) error ???
}
const listReports = sortedReports.map(item => {
return (
<tr key={item.rowNumber}>
<td> {item.year}</td>
<td> {item.month}</td>
<td> {item.bruto_ukupno}</td>
<td> {item.neto_plata}</td>
<td> {item.topli_obrok}</td>
<td> {item.doprinosi}</td>
<td> {parseInt(item.ukupno_plata)}</td>
<td className="table-actions">
<Link onClick={this.handleClick.bind(this, item.year)}
to={`/reports/details`}>
<PieChart size="21"/>
</Link>
</td>
</tr>
)});
return (
<div className="container">
<div>
<header>
<h4>A complete list of reports</h4>
<p>Details available by clicking on an item </p>
</header>
<hr />
</div>
<table className="table table-striped">
<thead>
<tr>
<th>Year</th>
<th>Month</th>
<th>Bruto</th>
<th>Neto</th>
<th>Meal</th>
<th>Taxes</th>
<th>Employees</th>
<th>Details</th>
<th></th>
</tr>
</thead>
<tbody>
{listReports}
</tbody>
</table>
</div>
);
}
}
export default ReportsData;
当我尝试 setState 并将其作为 props 传递时,我变得未定义。
我是初学者,请见谅并帮助我。
【问题讨论】:
-
将被点击项的ID存储在你的组件状态中,然后在
render中,通过props将相关项向下传递给子组件。如果您不知道该怎么做,我真的建议您阅读React tutorial,因为它涵盖了所有这些主题,对新手来说非常平易近人!跨度>
标签: javascript reactjs