Ich versuche, den Status einer Komponente in ReactJS umzuschalten, erhalte jedoch die folgende Fehlermeldung:
Maximale Aktualisierungstiefe überschritten. Dies kann passieren, wenn eine Komponente setState wiederholt in componentWillUpdate oder componentDidUpdate aufruft. React begrenzt die Anzahl verschachtelter Updates, um Endlosschleifen zu vermeiden.
Ich sehe die Endlosschleife in meinem Code nicht. Kann mir jemand helfen?
ReactJS-Komponentencode:
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(){...}
zu toggle = () => {...}
tun hat : Machen Sie es so, dass Sie es nicht brauchen bind
!
this.toggle()
zuthis.toggle
oder{()=> this.toggle()}