2

こんにちは、私はSwiftUIを初めて使用し、急勾配のプラスまたはマイナスが押されたときにTextFieldを追加または削除するきちんとした方法を見つけようとしています。

私は現在持っています

@State private var answers: [String] = ["", ""]
Stepper(onIncrement: {
    if(numberOfAnswers < 10){
        answers.append("")
        numberOfAnswers += 1
    }
    },
    onDecrement: {
        if(numberOfAnswers > 2){
        answers.removeLast()
        numberOfAnswers -= 1
        }
    }) {
ForEach(answers.indices, id: \.self) { index in
    TextField("Answer", text: $answers[index])
}

ただし、これにより、onDecrement が呼び出されたときに Index out of bounds 例外が発生します。String を Identifiable に準拠するように (@State構造体宣言の内側で)ラップしようとしましたForEach(answers)が、これを使用すると、変数が更新されないという警告が生成されます。

ここに投稿された解決策を試しましたが、役に立ちませんでした。

この結果は、ボタンを押したときに API 呼び出しを行う別の関数に渡されるため、永続的に保存する必要はありません。

これについての助けをいただければ幸いです。

4

1 に答える 1