Tôi đang cố gắng chuyển trạng thái của một thành phần trong ReactJS nhưng tôi gặp lỗi:
Độ sâu cập nhật tối đa vượt quá. Điều này có thể xảy ra khi một thành phần liên tục gọi setState bên trong thành phầnWillUpdate hoặc thành phầnDidUpdate. React giới hạn số lượng cập nhật lồng nhau để ngăn chặn các vòng lặp vô hạn.
Tôi không thấy vòng lặp vô hạn trong mã của mình, bất cứ ai cũng có thể giúp đỡ?
Mã thành phần 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(){...}
thành toggle = () => {...}
như vậy bạn không cần bind
nó!
this.toggle()
thànhthis.toggle
hoặc{()=> this.toggle()}