3
체크 상자의 이벤트를 기반으로 일부 HTML을 표시해야합니다. 부모 노드의 내 onClick 이벤트가 forEach 루프에 배치 될 때 함수를 전달하지 않습니다. (here's my fiddle). 그것에 대해 이상한 점은 하나의 요소에 전달할 때 함수를 전달한다는 것입니다. 이런 일이 왜onClick 이벤트가 ReactJS의 forEach 루프에 배치되었을 때 함수를 전달하지 않습니다.
var App = React.createClass({
getInitialState: function() {
return {toggle: false}
},
handleClick : function(event){
this.setState({toggle : !this.state.toggle});
},
render: function(){
var checkboxes = [];
this.props.data.forEach(
function(name)
{
checkboxes.push(<CheckBox onClick={this.handleClick} name={name} />);
});
var textBox = this.state.toggle ? <InputBox name="Bar" /> : null;
return (
<div>
<CheckBox name="Foo" onClick={this.handleClick} />
{checkboxes}
{textBox}
</div>
);
}
});
는 아는 사람 있나요? 이 버그입니까 아니면 내가 잘못하고있는 거지?
'this'는 실제로 정의되지 않았으며 forEach 콜백에서 비 엄격 모드의 전역 개체입니다. – FakeRainBrigand
'forEach'는 선택적인 두 번째 인수를'this' 문맥으로 취하며'bind'를 호출 할 필요가 없습니다 : this.props.data.forEach (function() {...}, this);' –
죄송합니다. 나는 아직도 '이'에 대해 더 배워야한다고 생각한다. 내 원래 답변을 수정했습니다. 왜냐하면'this'를 인수로 전달하는 것이 옵션이 아닌 유사한 상황을 알면 유용 할 수 있기 때문입니다. –