小编use*_*301的帖子

SwiftUI:NavigationLink 在最少 10 行示例中导致不必要的填充

当将视图包装在 a 中NavigationLink以创建主从流时,NavigationLink似乎添加了我不想要的填充(红色)。

在此输入图像描述 在此输入图像描述

如果我注释掉NavigationLink,一切看起来都是正确的(右图)。然而,这当然使我的观点无法点击。

我该如何去除在手表上渲染此内容时出现的红色填充?

这是我运行的代码:

struct ContentView: View {
    
    let testArray = [1,2,3,4,5]
    
    var body: some View {
        
        ScrollView {
            VStack {
                ForEach(testArray, id: \.self) { element in
                    
                    NavigationLink(destination: Text("")) {
                        Text("BB . . . . . . . . . . . . . . . . . . . . . . .")
                            .font(.title3)
                            .foregroundColor(.white)
                            .background(Color.blue)
                    }.background(Color.red) //has all the unwanted padding
                    
                }
            }.background(Color.black)
        }.background(Color.gray)
    }
}
Run Code Online (Sandbox Code Playgroud)

我在如何在 SwiftUI 中将 NavigationLink …

padding swiftui swiftui-navigationlink

4
推荐指数
1
解决办法
1491
查看次数

设置BOTH,android:onClick和OnTouchListener

嘿家伙,我有一个问题!你能告诉我是否以及如何在同一个按钮上设置一个android:onClick方法和一个OnTouchListener?我真的需要这个我的应用程序.

我知道它们的不同之处并且只使用android:onClick或OnTouchListener确实有效.一旦我尝试两者,只需OnTouchListener工作.

我需要这个用于不同布局的不同功能..

谢谢你的帮助

只是为了更好地理解.使用android:onClick我的意思是你在xml文件中分配这个按钮的方法,比如android:onClick ="InitMethod"

android button

3
推荐指数
1
解决办法
5992
查看次数

JavaScript:如果键不存在则写入字典

我想用 JavaScript 填充字典的字典。

一旦我有了居民的地址和姓名,我想将其写入对象,即

addressCache[city][street][number] = name

但是,如果我的字典尚不包含 s 键的值city,则它会访问streetof undefined,因为字典尚不存在。

我目前的解决方法是

adressCache = {}
function setAddressEntry(city, street, number, familyName) {
  if(!adressCache[city]) {
    adressCache[city] = {}
  }
  if(!adressCache[city][street]) {
    adressCache[city][street] = {}
  }

  adressCache[city][street][number] = familyName
  
}
Run Code Online (Sandbox Code Playgroud)

我认为这不是正确的做法。我该如何改进这段代码?或者为此编写一个辅助函数是否很常见?

javascript dictionary

3
推荐指数
1
解决办法
3398
查看次数

SwiftUI DragGesture() 获取屏幕上的起始位置

我想让一个视图“可滑动”,但是这个视图只覆盖整个屏幕的一小部分。正在做:

var body: some View {
    
    ZStack {
        Text("ABC")
            .gesture(DragGesture().onChanged(onChanged))
    }
}

func onChanged(value: DragGesture.Value) {
    print(value.startLocation)
    print("onChanged", value.location)
}
Run Code Online (Sandbox Code Playgroud)

为我提供用户滑动位置的相对值 - 但是,在不知道视图的确切位置的情况下,我无法知道用户的触摸在屏幕上的位置。

换句话说,当Text位于屏幕中央时,一直到右边缘给出 200px。但是假设文本向左移动,那么它几乎是 400。我尝试在 ZStack 上放置另一个手势来保存初始值,但是看来您不能在彼此之间拥有多个手势。

如何让侦听器转换值,使左边缘为 0,右边缘为以 px 为单位的 displayWidth,无论文本在哪里?

swiftui draggesture

3
推荐指数
1
解决办法
3588
查看次数

fetch() 在扩展程序中有效,但在 Chrome 控制台/代码片段中失败

我的 Chrome 扩展执行了一个 get 请求,效果很好。由于使用代码片段测试速度更快,因此我想在 Chrome 控制台或 Chrome 代码片段中执行完全相同的操作。最小的例子:

fetch(url, {
    method: "GET"
}).then(response => response.text())
  .then(html => console.log(html))
  .catch(error => console.log(error))
Run Code Online (Sandbox Code Playgroud)

不幸的是,我只能得到

TypeError: Failed to fetch对于错误和

Failed to load resource: net::ERR_FAILED在 Chrome 的内联错误标记中

在我的 Chrome 扩展中,我遇到了 CORS 问题,因此我在 AWS Lambda 函数中所做的是将标头设置为

const headers = {
    'Content-Type': 'application/json',
    "Access-Control-Allow-Headers" : "Content-Type",
    "Access-Control-Allow-Origin" : "*",
    "Access-Control-Allow-Credentials" : true
};
Run Code Online (Sandbox Code Playgroud)

所以我认为CORS 不是这里的问题。但我似乎无法弄清楚在扩展程序中运行请求与在控制台/代码片段中运行请求会产生什么差异。我在这里可能会缺少什么?

我也没有在 AWS CloudWatch 中看到该请求,所以我想它甚至没有离开我的机器。我正在对安装了 0 个扩展的 Chrome 用户进行测试,在隐身模式下也会发生同样的情况

为了解决我的服务器的任何问题,我还插入了https://lockevn.medium.com/snippet-to-fetch-remote-rest-api-and-display-in-console-of-chrome-devtool中的示例-6896a7cd6041

async function testGet() {
    const …
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome-extension google-chrome-devtools fetch-api

2
推荐指数
1
解决办法
4877
查看次数

具有单区 EFS 和互联网访问功能的 AWS Lambda 函数

我的 Lambda 函数一直运行良好,直到昨晚突然失去了互联网访问权限。

它连接到 VPC 以访问我的单区 EFS。

A 发现,要让 Lambda 函数在连接到 VPC 时连接到互联网,我需要设置一个子网才能访问设置为 NAT 网关的路由表。

到目前为止,一切都很好。

现在,当我尝试将其他 (NAT) 子网添加到我的 Lambda 函数时,它告诉我

EFS file system referenced by access point does not have mount targets created in all availability zones the function will execute in. Please create EFS mount targets in availability zones where the function has a corresponding subnet provided.

因此,我也尝试将 EFS 添加到新子网(尽管这对我来说没有意义,因为我只想将其用于互联网访问)。

现在,令人失望的是,当尝试为新子网添加另一个挂载目标时,EFS 告诉我You can only create one mount target per Availability Zone.

我是否必须禁用 One-Zone for EFS 才能让我的小型 …

amazon-web-services amazon-efs

1
推荐指数
1
解决办法
1014
查看次数