Próbuję przełączyć stan komponentu w ReactJS, ale pojawia się komunikat o błędzie:
Przekroczono maksymalną głębokość aktualizacji. Może się tak zdarzyć, gdy składnik wielokrotnie wywołuje funkcję setState wewnątrz komponentu componentWillUpdate lub componentDidUpdate. React ogranicza liczbę zagnieżdżonych aktualizacji, aby zapobiec nieskończonym pętlom.
Nie widzę nieskończonej pętli w moim kodzie, czy ktoś może pomóc?
Kod komponentu 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(){...}
w, toggle = () => {...}
aby nie było potrzeby bind
!
this.toggle()
nathis.toggle
lub{()=> this.toggle()}