我有一系列可识别的 Training 元素。每个 Training 元素只有两个属性,name 和 isRequired。
将数组元素的现有值更新为新的编辑值的最直接(Swiftyiest)方法是什么......编辑后的值稍后将提交到数据库。
是否可以将EditTraining视图(子)中的状态设置为传入的(父)值,然后在子视图中编辑状态?
我被困在这个问题上的时间比我承认的要长。
非常感谢您的任何帮助!
这是代码:
import SwiftUI
struct Training: Identifiable {
let id: String
let trainingName: String
let isRequired: Bool
}
class GetTrainings: ObservableObject {
@Published var items = [Training]()
init() {
self.items = [
Training(id: "ttt1", trainingName: "Safety", isRequired: true),
Training(id: "ttt2", trainingName: "Administrative", isRequired: false),
Training(id: "ttt3", trainingName: "Computer", isRequired: true),
Training(id: "ttt4", trainingName: "People", isRequired: true),
Training(id: "ttt5", trainingName: "Managerial", isRequired: true),
]
}
}
struct TrainingList: View …Run Code Online (Sandbox Code Playgroud) 我目前的状态是这样的:
state = { items : [{id: 1, text: 'test words'}, {id: 2, text: 'another test'}]
Run Code Online (Sandbox Code Playgroud)
这是我从阵列中删除对象的功能,试图避免改变状态。
handleRemove(passedInId) {
const myItems = this.state.items
const newArray = myItems.filter(item => item.id !== passedInId)
this.setState(prevState => ({
items: prevState.items = newArray
}))
console.log('handle remove runned', passedInId, myItems, newArray)
}
Run Code Online (Sandbox Code Playgroud)
它可以正常工作,但是在继续生活之前想知道它是否不是反模式
非常感谢!!