小编Off*_*arc的帖子

FCM:firebase getToken 选项(ServiceWorkerRegistration,vapidKey)

所以这就是 firebase 文档描述 get token 函数的方式:

getToken ( options ? : { serviceWorkerRegistration ?: ServiceWorkerRegistration ; vapidKey ?: string } ) : Promise <string>

可选选项:{ serviceWorkerRegistration?: ServiceWorkerRegistration; vapidKey?: 字符串 }

可选的 serviceWorkerRegistration?: ServiceWorkerRegistration 接收推送消息的服务工作者注册。如果未明确提供注册,则您的根位置需要有 firebase-messaging-sw.js。有关更多详细信息,请参阅检索当前注册令牌。

我只是想弄清楚如何在我的代码中使用 service worker 选项。我是不是像这样将文件位置放在 getToken('/file-location') 中?或者我是否导入了一个注册我的自定义 Firebase Service Worker 的函数?我可能只是愚蠢,但这些文档是准系统。

javascript firebase service-worker firebase-cloud-messaging

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

React-Navigation useIsFocused 总是返回 true,我不明白为什么?

我对此有非常简单的用例,基本上,如果屏幕聚焦,我希望该函数运行,如果没有,则不运行。


  const isFocused = useIsFocused();

  const onViewRef = useRef(({ viewableItems }) => {

    if (!isFocused) return;

    //code to run
  });

Run Code Online (Sandbox Code Playgroud)

这是该屏幕的堆栈:

const MyStack = () => {
  return (
    <Stack.Navigator headerMode="none">
      <Stack.Screen
        component={MyStackComponent}
        name="My"
      />
    </Stack.Navigator>
  );
};

Run Code Online (Sandbox Code Playgroud)

这是 tabNavigator 中使用的堆栈

     <Tab.Screen
        component={MyStack}
        name="My"
      />
      <Tab.Screen
          component={Other Stack}
          name="Other"
        />
      
Run Code Online (Sandbox Code Playgroud)

所以基本上每当我进入应用程序上的任何其他选项卡时,使用 useIsFocused 挂钩的文件都应该返回 false,对吧?因为现在无论如何它都会返回 true,而且我不能让该函数一直运行。有什么指点吗?

react-native react-native-navigation react-hooks

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

如何修复无论如何在If语句中似乎返回true的Any方法

我正在尝试确定生成的文本文件上的错误消息是否包含单词“ multiple”,“ Database”或两者。对于每个文本文件,我正在评估它包含的单词,而现在仅使用消息传递框查看其评估方式。从我可以看出,第一个if语句是唯一返回true的语句,即使我在文件夹中拥有的两个文本.txt文件每个都只有一个关键字。下面的代码。

我搜索了是否在else if语句中的感叹号位置错误,但是从我发现的情况来看,它看起来是正确的。

string[] files = Directory.GetFiles(@"C:\temp\test", "*.txt");

        var multi = "multiple";
        var data = "Database";

        for (int i = 0; i < files.Length; i++)
        {
            var sheet = File.ReadAllText(files[i]);

            if (multi.Any(sheet.Contains) && data.Any(sheet.Contains))
            {
                MessageBox.Show("Both");
            }
            else if (multi.Any(sheet.Contains) && !data.Any(sheet.Contains))
            {
                MessageBox.Show("Just Multiple");

            }else if(!multi.Any(sheet.Contains) && data.Any(sheet.Contains))
            {
                MessageBox.Show("Just Database");
            }
Run Code Online (Sandbox Code Playgroud)

因此,第一个文件中只有单词“ multiple”。第一个if语句应该返回false,因为两个条件都不满足,因为第一个any方法返回true,而第二个则不应该。但是据我所知,两者都返回了真实。

c#

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