Reactjs 反应组件不会按状态更改的顺序呈现

Reactjs 反应组件不会按状态更改的顺序呈现,reactjs,virtual-dom,Reactjs,Virtual Dom,在react中,假设我有prop name=A、B、C的输入组件。 它们按顺序呈现 render() { return( <Input name="A" /> <Input name="B" /> <Input name="C" /> ); } render(){ 返回( ); } 然后我按照先C然后A的顺序更改C和A的状态。 组件A和C按照先A然后C的顺序重新渲染。它们不会按照状态更改的顺序呈现(C然后A)

在react中,假设我有prop name=A、B、C的输入组件。 它们按顺序呈现

render() {
   return(
      <Input name="A" />
      <Input name="B" />
      <Input name="C" />
   );
}
render(){
返回(
);
}
然后我按照先C然后A的顺序更改CA的状态。 组件AC按照先A然后C的顺序重新渲染。它们不会按照状态更改的顺序呈现(C然后A

请参阅下面给出的代码片段。 我发现这本书被出版了

设置C的状态

设置B的状态

设定状态

渲染

B的渲染

C语言的渲染
类输入扩展了React.Component{
组件willmount(){
this.props.addInput(this);
}
状态={
错误:false
}
检查(){
log(“设置状态”,this.props.name)
这是我的国家({
错误:正确
})
}
render(){
log(“呈现”,this.props.name)
返回(
);
}
}
类Hello扩展了React.Component{
建造师(道具){
超级(道具);
this.inputs={};
}
附加输入(组件){
this.inputs[component.props.name]=组件;
console.log(this.inputs);
}
checkAll(){
const inputs=this.inputs;
Object.keys(inputs).reverse().forEach(name=>{
输入[name]。检查()
});
}
render(){
返回(
this.addInput(c)}name=“A”/>
this.addInput(c)}name=“B”/>
this.addInput(c)}name=“c”/>
this.checkAll()}>单击此处
);
}
}
ReactDOM.render(
,
document.getElementById('容器')
);

这就是默认情况下JSX的工作方式

如果要按上次状态更改的顺序呈现组件,则必须将所有组件放入一个数组中,或者有一个
componentName:componentInstance
的集合,还必须有一个
componentName:lastUpdated
的集合[或数组](或者数组项表单
{componentName:string,lastUpdated:Date}
),您可以在其中修改每个组件的
lastUpdated
值,然后根据日期值对
componentName:componentInstance
集合或数组排序


然后在JSX中添加
.map

您必须包含相关的代码部分才能重现问题。您好,我只想知道react组件的呈现顺序。@YuryTarabanko添加了代码片段,请检查谢谢您的回答。您能检查更新的代码吗。