在setState上反应道具更改

时间:2020-10-28 11:20:54

标签: reactjs typescript react-props

问题:使用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;

任何帮助都会很棒!

干杯。

0 个答案:

没有答案