目标:我希望能够在编辑模式下调整步进器,但是当用户开始移动标题行时,要么拖动步进器,要么隐藏所有步进器行,直到移动完成。
当前:当用户移动标题行时,它会在所有行之间移动,而不仅仅是标题行。
尝试过:我查看了 onMoved 文档,似乎只有在移动完成后才能执行某些操作。我还尝试使用长按和点击手势,但它们似乎只适用于文本本身,而不适用于行。我不确定这目前是否可行。
代码:
struct ContentView: View {
@ObservedObject var items = ItemGroup()
@State private var editMode = EditMode.active
var body: some View {
NavigationView{
List {
ForEach(Array(items.group.enumerated()), id: \.element.id) { index, item in
Text(items.group[index].item)
.deleteDisabled(!editMode.isEditing)
if editMode.isEditing {
let stepper = items.group[index].stepper
Stepper("Stepper: \(stepper)", value: $items.group[index].stepper, in: 1...10)
.moveDisabled(true)
.deleteDisabled(true)
}
}
.onMove(perform: onMove)
}
.navigationBarTitle("List")
.navigationBarItems(leading: EditButton(), trailing: addButton)
.environment(\.editMode, $editMode)
}
}
private var addButton: some View {
switch editMode {
case …Run Code Online (Sandbox Code Playgroud) 目标:按下按钮即可更新导航栏颜色。
当前:导航栏颜色根本没有改变。
尝试:我目前正在使用 init() 来设置 navBarTintColor & 我也尝试过这个答案,但都不会按需更新。
代码:
var navColor = Color.green
struct ContentView: View {
@State var themeColor = Color.green
@State var items = [0,1,2,3,4,5,6,7,8,9]
@State var showSheet = false
init() {
UINavigationBar.appearance().titleTextAttributes = [.foregroundColor: UIColor.black]
UINavigationBar.appearance().barTintColor = UIColor(navColor)
UINavigationBar.appearance().backgroundColor = UIColor(navColor)
}
var body: some View {
NavigationView{
List{
ForEach(0..<items.count){ i in
Text("Item: \(items[i])")
}.listRowBackground(themeColor)
}
.navigationBarTitle("Theme", displayMode: .inline)
.navigationBarItems(leading: Button(action: {
showSheet.toggle()
}, label: {
Text("Sheet")
})
,trailing: Button(action: {
self.themeColor …Run Code Online (Sandbox Code Playgroud) 目标:当页面导航到时更新导航栏重音
当前:导航栏口音更新延迟。它会更新到上次访问的页面。例如:如果我从 page1 开始,然后单击 page2,则重音将保留在 page1 上,直到我再次单击 page2。如果我单击第 3 页,第 2 页现在将带有重音符号。
尝试:我正在使用next.routerinuseEffect来尝试更新 的更改的重音router。
代码:
app.js
import "tailwindcss/tailwind.css";
import Layout from "../components/Layout";
function MyApp({ Component, pageProps }) {
return (
<Layout>
<Component {...pageProps} />
</Layout>
);
}
export default MyApp;
Run Code Online (Sandbox Code Playgroud)
layout.js
import Navbar from "./Navbar";
export default function Layout({ children }) {
return (
<div className="layout">
<Navbar />
<div className="">{children}</div>
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
navbar.js
import Link from "next/link";
import { useRouter …Run Code Online (Sandbox Code Playgroud) 我试图在服务器端获取当前登录的 supabase 用户。
我尝试过使用const user = supabase.auth.user();,但总是得到null回应。
我也尝试过const user = supabase.auth.getUserByCookie(req),但它也返回null。我想是因为从钩子调用它时我没有向 api 发送 cookie。
我尝试将user.id钩子传递到 api,但 api 没有接收参数。
我也尝试过这种方法,但从未获取令牌。req.cookies 中似乎不存在。
let supabase = createClient(supabaseUrl, supabaseKey);
let token = req.cookies['sb:token'];
if (!token) {
return
}
let authRequestResult = await fetch(`${supabaseUrl}/auth/v1/user`, {
headers: {
'Authorization': `Bearer ${token}`,
'APIKey': supabaseKey
}
});
`
Run Code Online (Sandbox Code Playgroud)
有谁知道如何在服务器端代码中获取当前登录的用户?