如果this.props.models
数组中只有1个项目,我试图自动调用onModelSelect方法
如果我将方法附加到onClick
事件处理程序上,它将起作用,但是就我自己而言,我不确定使用的语法
如果我使用语法
this.onModelSelect(model.id))
然后我得到了错误:
setState(...):在现有状态转换期间无法更新(例如 如内幕)。渲染方法应该是道具的纯粹功能 和状态。
但是它确实输出到console.log
因此,我试图像使用onClick
事件处理程序()=>this.onModelSelect(model.id))
一样调用它,但这不会向console.log输出任何信息
用来调用我的方法的正确语法是什么?
export default class App extends Component {
onModelSelect = (modelId) => {
this.props.selectModel(modelId);
this.props.setModelSelected(true);
console.log('test')
console.log('modelId',modelId)
}
render() {
return(
<div>
{this.props.models.length === 1 && this.props.models.map(model => ()=>this.onModelSelect(model.id))}
{this.props.models.map(model =>
<div onClick={()=> this.onModelSelect(model.id)}>Select Model</div>
)}
</div>
)
}
}
答案 0 :(得分:0)
您可以在父组件中执行以下操作:检查模型数组的状态/道具的长度是否为1,然后设置状态,这是通过调用道具提供的方法来完成的。您可以在设置模型数组的状态或接收模型数组的道具时执行此操作。