FRONTEND/React
Onclick Event 로 걸어두었는데 Rendering 시 실행되는 케이스
neeon
2023. 8. 16. 14:30
728x90
예를 들어.. 아래와 같은 코드를 작성했다고 해보자.
module.exports = React.createClass({
render: function(){
var taskNodes = this.props.todoTasks.map(function(todo){
return (
<div>
{todo.task}
<button type="submit" onClick={this.props.removeTaskFunction(todo)}>Submit</button>
</div>
);
}, this);
return (
<div className="todo-task-list">
{taskNodes}
</div>
);
}
});
onclick event 로 map 함수에 표시된 어떤 것들을 삭제하는 기능을 하는 function 을 구현한다.
이때 delete 기능은 버튼 클릭 시에만 발생하여야 한다. 근데 해당 function 안에서 console을 찍어보면
화면이 렌더링 될 때 function 안의 console 이 찍히는 것을 볼 수 있을 것이다.
이벤트 함수에 파라미터 값을 넣을 경우에는 문법을 신경 써주어야 한다.
잘못 사용된 형태의 코드
onClick={this.function(param)}
정상 동작하는 코드
onClick={()=> this.function(param)}
728x90