ฉันพยายามสลับสถานะขององค์ประกอบใน ReactJS แต่ฉันพบข้อผิดพลาด:
เกินความลึกการอัปเดตสูงสุด สิ่งนี้สามารถเกิดขึ้นได้เมื่อคอมโพเนนต์เรียก setState ภายใน componentWillUpdate หรือ componentDidUpdate ซ้ำ ๆ 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()}