Javascript 使用this.setState更新react组件状态是';不要重新渲染组件
我正在使用react.setState()方法更新react组件状态,状态中的值正在更新,但组件没有使用更新的值重新呈现Javascript 使用this.setState更新react组件状态是';不要重新渲染组件,javascript,reactjs,Javascript,Reactjs,我正在使用react.setState()方法更新react组件状态,状态中的值正在更新,但组件没有使用更新的值重新呈现 类任务扩展React.Component{ 构造函数(){ 超级(); 此.state={ missonContents:[此.missonContent[0]] }; } 内容错误=[{ id:“接近”, 数据:“访问农民,回顾他们的自我维持想法,提供咨询并提出合适的选择。我们支持农民,直到他们自我维持,而不是一次性捐赠。” }, { id:“计划”, 数据:“为每个农民
类任务扩展React.Component{
构造函数(){
超级();
此.state={
missonContents:[此.missonContent[0]]
};
}
内容错误=[{
id:“接近”,
数据:“访问农民,回顾他们的自我维持想法,提供咨询并提出合适的选择。我们支持农民,直到他们自我维持,而不是一次性捐赠。”
},
{
id:“计划”,
数据:“为每个农民的自我维持想法提供90%的资金,并要求农民贡献10%的资金以创造责任。”
},
{
id:“目标”,
数据:“制定一个工作模式,使贫困农民能够自我维持。参与地区或州一级支持小农的政策宣传。”
}
];
/**在componentDidMount()中调用此方法*/
动画发射(){
/**这里有一些代码*/
//正在更新状态,但未重新提交组件
这是我的国家({
“missonContents:[this.missonContent[0],this.missonContent[1]]
});
}
render(){
//console.log(this.state[“missonContents”]);
const missionCarousel=this.state[“missonContents”].map((missionContent)=>{
//控制台日志(任务内容);
返回{
任务内容数据
}
});
报税表(<
div className=“col l12 m12 s12 margintop50卡”>{
使命召唤
} <
/div>
);
}
}
在你的
动画任务()中试试这个
在设置状态调用之后componentdidmount()
我希望它能起作用
- 更新:我在代码中看不到componentdidmount。基于您的一条评论,我说您可以使用它,因此如果您没有componentdidmount并在其中调用animatedmission,它可能无法工作。这也不是最好的解决方案
您的代码中存在一些问题。
1) 首先,在构造函数中绑定animateMission
方法
this.animateMission=this.animateMission.bind(this);
或者使用箭头函数
2) 你有一些拼写错误。
this.setState({missonContents:[this.missonContent[0],this.missonContents[1]]);//更新状态,不重新招标组件
此处this.missonContent[1]
和this.missonContent[0]
有不同的拼写。您可以通过将此代码放置在构造函数中来绑定animateMission()
:this.animateMission=this.animateMission.bind(this)
或更改animateMission(){…}
toanimateMission=()=>{…}
。您在哪里调用animateMission()
?我在componentDidMount()中调用animateMission请使用自动绑定语法绑定函数。animateMission=()=>{……}我将函数改为animateMission=()=>{},但组件仍然没有使用更新的data@naveen您在状态
对象中拼错了任务内容
this.setState()
正在将更新的内容设置为missionContents
属性,但您正在呈现missonContents
属性。不工作,而且手动调用componentDidMount()是否正确?是的,手动调用componentDidMount
可以。有时,您希望在页面挂载后获取数据。