问题:使用setList更新组件props和组件内部的状态,而不仅仅是组件内部的状态。
我已经找到了部分解决方案,第一次克隆实例就可以了,我停止使用splice,请参阅底部的addPhaseToList函数。
新问题:克隆Phase对象后,列表返回到道具中的状态。
在道具中,其长度为5,['Phase 1','Phase 2','Phase 3','Phase 4','Phase 5'], 添加了一些内容[“阶段1”,“阶段2”,“阶段3”,“阶段4”,“测试”,“阶段5”], 添加了其他内容['阶段1','阶段2','阶段3','阶段4','测试2','阶段5']。
Console.log在克隆后显示。 ['阶段1','阶段2','阶段3','阶段4','阶段5']
public insertPhase = (phase:string):Phases => {
let clone = Object.assign(Object.create(Object.getPrototypeOf(this)), this)
console.log('clone a', clone)
this.addPhaseToList(phase,clone)
return clone;
private addPhaseToList = (phase:string,phaseObj:Phases) => {
let result:string[] = [];
for (let i=0;i<phaseObj.phaseList.length;i++) {
if (i === phaseObj.phaseList.length-1) {
result = result.concat([phase])
}
result = result.concat([phaseObj.phaseList[i]])
}
phaseObj.phaseList = result;
任何帮助都会很棒!
干杯。