我使用的是:https://react-materialize.github.io/#/collapsible。
有没有办法以编程方式制作一个反应物化手风琴而不是点击它本身?
我正在尝试添加一个onClick处理程序,以便在选择一个react-materialize可折叠手风琴时我可以执行一个setState,这样我就可以根据该状态执行某些操作并将内容呈现到该手风琴弹出窗口中(条件渲染和其他目的。
我有3个CollapsibleItems,当页面呈现时,this.changeBoardType被调用6次,如果我在其中执行setState,我会陷入无限循环:
超出最大更新深度。组件时可能会发生这种情况 反复调用componentWillUpdate中的setState或 componentDidUpdate。 React限制嵌套更新的数量 防止无限循环。
注意:如果我在<CollapsibleItem onSelect={this.changeBoardType("single")} />
<Collapsible accordion>
<CollapsibleItem onClick={this.changeBoardType("single")} header='Single Hand' icon='filter_1'>
<Row>
<Input s={12}
name="singleHand"
type="select"
label="Position"
value={this.state.singleHand}
onChange={this.handleChange}>
...
答案 0 :(得分:0)
如果您尝试将参数传递给onClick
或onSelect
等事件处理程序,则需要执行以下操作:
<CollapsibleItem onClick={() => this.changeBoardType('single')} ...>
调用一个返回changeBoardType
函数的匿名函数将阻止无限setState
循环