Я пытаюсь создать таблицу и отобразить некоторые строки с возможностью иметь «скрытую» строку.Создание события onClick в React
Вот что я пытаюсь сделать:
var Child = React.createClass({
render: function() {
return(
<tr>
<td colSpan="8"> I am a child that can be hidden!</td>
</tr>
)
}
})
var CreateRows = React.createClass({
getInitialState: function() {
return {childVisible: true}
},
render: function(){
var rows = this.props.people.map(function(row, i){
return (
<tr key={i} onClick={this.onClick}>
<td>{row['id']}</td>
</tr>
{
this.state.childVisible
? <Child />
: null
}
)
})
return (
<tbody>
{rows}
</tbody>
)
},
onClick: function(){
this.setState({childVisible: !this.setstate.childVisible})
}
});
Я звоню в другом компоненте CreateRows
и посылая ему некоторые данные:
render: function(){
return (
<div>
<ChangeRowCount updatePeople = {this.updatePeople}/>
<table>
<CreateColumns columns={this.state.table_columns} />
<CreateRows people = {this.state.people}/>
</table>
</div>
)
}
Я понимаю, что мой вопрос заключается в том, что когда я создаю переменная rows
Я включаю функцию onClick()
, но она не может «увидеть» ее и получить эту ошибку:
Uncaught (in promise) TypeError: Cannot read property 'onClick' of undefined(…)
Любые мысли о том, как я могу включить функцию onClick() для отображения/скрытия компонента Child
?
Спасибо!
Ahh ок. Кроме того, я получаю «Неожиданный токен (133: 16) (...)», который указывает на {this.state.child.Visible} ... любую идею на этом? –
Я помету это как правильно в 4 минуты, когда я это позволю. –
вы можете вернуть только одно, так что tr и trernary statement нужно обернуть в один элемент. Я не уверен, что происходит с ошибкой, но если я должен был догадаться, что это просто сделать для форматирования. если вы обрушиваете это на одну строку, он все равно даст вам ошибку – PhilVarg