如何向我的deleteRow()函数添加确认?A 已经添加了,.alert但我不知道如何继续。
List {
ForEach(data, id: \.self) { item in
Text(item)
.alert(isPresented: self.$showingDeleteAlert) {
Alert(title: Text("..."), message: Text("..."), primaryButton: .destructive(Text("Delete")) {
deleteRow // ???
}, secondaryButton: .cancel()
)
}
}
.onDelete(perform: deleteRow)
}
func deleteRow(at indexSet: IndexSet) {
for index in indexSet {
let item = data[index]
viewContext.delete(item)
do {
try viewContext.save()
} catch let error {
print("Error: \(error)")
}
}
}
``
Run Code Online (Sandbox Code Playgroud) 这是我的 Firestore 数据库:
更新锻炼常量后useEffect(),我只能访问名称和 uId。我如何才能访问文档 ID?
import React, { useState, useEffect } from "react";
import "./Workouts.sass";
import Workout from "./Workout";
import firebase from "./firebase";
function Workouts() {
const [workouts, setWorkouts] = useState([]);
useEffect(() => {
let user = firebase.auth().currentUser;
const database = firebase.firestore();
const unsubscribe = database
.collection("workouts")
.where("uId", "==", user.uid)
.onSnapshot((snapshot) => {
setWorkouts(snapshot.docs.map((doc) => doc.data()));
});
return () => {
unsubscribe();
};
}, []);
return (
<div className="Workouts">
{workouts.map((workout) => (
<Workout key={workout.name} workout={workout} />
))} …Run Code Online (Sandbox Code Playgroud) 我从 firestore 获取了由trained_on desc 订购的锻炼。
useEffect(() => {
let user = firebase.auth().currentUser;
const database = firebase.firestore();
const unsubscribe = database
.collection("workouts")
.where("uId", "==", user.uid)
.orderBy("trained_on", "desc")
.onSnapshot((snapshot) => {
setWorkouts(
snapshot.docs.map((doc) => ({ id: doc.id, ...doc.data() }))
);
});
return () => {
unsubscribe();
};
}, []);
Run Code Online (Sandbox Code Playgroud)
这是忽略未设置trained_on 的条目。当我创建新的锻炼时,没有“trained_on”。
如何添加条目,其中trained_on也未定义?
我的应用程序意外启动了一个我以前从未遇到的错误,我无法在网络上找到任何解决方案.我认为这与我的代码无关,但如果有帮助,这里是:
class InterfaceController: WKInterfaceController {
@IBOutlet var tableView: WKInterfaceTable!
final let url = URL(string: "http://...")
private var tasks = [Task]()
override func awake(withContext context: Any?) {
super.awake(withContext: context)
downloadJson()
}
func downloadJson() {
guard let downloadURL = url else { return }
URLSession.shared.dataTask(with: downloadURL) { data, urlResponse, error in
guard let data = data, error == nil, urlResponse != nil else {
print("something is wrong")
return
}
do
{
let decoder = JSONDecoder()
let downloadedTasks = try decoder.decode(Tasks.self, from: data) …Run Code Online (Sandbox Code Playgroud)