ReactJS에서 구성 요소의 상태를 전환하려고하는데 오류 메시지가 나타납니다.
최대 업데이트 깊이를 초과했습니다. 이는 구성 요소가 componentWillUpdate 또는 componentDidUpdate 내에서 setState를 반복적으로 호출 할 때 발생할 수 있습니다. React는 무한 루프를 방지하기 위해 중첩 업데이트 수를 제한합니다.
내 코드에 무한 루프가 보이지 않습니다. 누구든지 도울 수 있습니까?
ReactJS 컴포넌트 코드 :
import React, { Component } from 'react';
import styled from 'styled-components';
class Item extends React.Component {
constructor(props) {
super(props);
this.toggle= this.toggle.bind(this);
this.state = {
details: false
}
}
toggle(){
const currentState = this.state.details;
this.setState({ details: !currentState });
}
render() {
return (
<tr className="Item">
<td>{this.props.config.server}</td>
<td>{this.props.config.verbose}</td>
<td>{this.props.config.type}</td>
<td className={this.state.details ? "visible" : "hidden"}>PLACEHOLDER MORE INFO</td>
{<td><span onClick={this.toggle()}>Details</span></td>}
</tr>
)}
}
export default Item;
toggle(){...}
에 toggle = () => {...}
당신이 필요가 없습니다 bind
그것!
this.toggle()
에this.toggle
나{()=> this.toggle()}