小编sce*_*eee的帖子

弃用全局 JSX 命名空间后,JSX.Element 的正确返回类型替换是什么?

在 中@types/react,全局JSX命名空间已被弃用

declare global {
    /**
     * @deprecated Use `React.JSX` instead of the global `JSX` namespace.
     */
    namespace JSX {
    ...
    }
}
Run Code Online (Sandbox Code Playgroud)

由于我启用了 ESLintdeprecation/deprecation规则(来自 plugin eslint-plugin-deprecation),因此我现在收到函数组件返回类型的错误,如下所示:

export default function TestComponent(): JSX.Element { // This JSX is marked as deprecated
    return (
        <span>Test</span>
    );
}
Run Code Online (Sandbox Code Playgroud)

JSX.Element既然全局命名空间已被弃用,那么在这种情况下,正确的返回类型替换是什么JSX

是否React.JSX.Element如弃用消息中所述:

export default function TestComponent(): React.JSX.Element { ... }
Run Code Online (Sandbox Code Playgroud)

或者是ReactElement这样的:

import { ReactElement } from "react";
export default …
Run Code Online (Sandbox Code Playgroud)

jsx typescript reactjs react-typescript

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

Flutter 包 widgets.dart、material.dart 和 cupertino.dart 有什么区别,使用哪一个?

在使用 flutter 时,我经常遇到标准库中不同包公开的类型。

例如,FlutterError但同样适用于其他小部件。在编写它并在 VS Code 中使用 IntelliSense 解析要导入的包以使其FlutterError可用时,IntelliSense 在多个不同的包中为我提供 FlutterError:

在这种情况下,它可以从

  • package:flutter/widgets.dart
  • package:flutter/foundation.dart
  • package:flutter/material.dart
  • package:flutter/cupertino.dart
  • package:flutter/rendering.dart

我的理解是,material.dartcupertino.dart提供特定样式的小部件 - 但剩下的部分是什么,我应该导入哪个包,该包应该MaterialApp(..)独立于平台并且也可以在 iOS 上运行?

并且 - 如果它有所不同 - 应该使用哪一个,以便特定于平台的小部件在 Android 和 iOS 上自动用于本机功能,例如日期/时间选择器,以便日期选择器自动成为 Android 上的平台特定变体和平台特定变体在iOS上?

flutter

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

Kubernetes 是否允许并使用多个 imagePullSecrets 从私有注册表中拉取镜像?

我有一个私人注册表 (gitlab),我的 docker 图像存储在其中。对于部署,会创建一个密钥,允许 GKE 访问注册表。秘密被称为deploy-secret。密钥的登录信息在注册表中很短的时间后就会过期。

我还创建了第二个永久机密,允许访问 docker 注册表,名为permanent-secret.

是否可以用两个秘密指定 Pod?例如:

apiVersion: v1
kind: Pod
metadata:
  name: private-reg
spec:
  containers:
  - name: private-reg-container
    image: <your-private-image>
  imagePullSecrets:
  - name: deploy-secret
  - name: permanent-secret
Run Code Online (Sandbox Code Playgroud)

Kubernetes 在稍后尝试重新拉取镜像时,是否会识别出第一个秘密不起作用(不允许对私有注册表进行身份验证),然后成功回退到第二个秘密?

kubernetes google-kubernetes-engine kubernetes-secrets

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

Istio 的最小 Google Kubernetes Engine 集群大小/配置是多少?

我尝试使用 Google Cloud Deployment Manager 在 Google Kubernetes Engine 上启动 Istio,如 Istio快速入门指南中所述。我的目标是为一些非常轻量级的微服务建立一个尽可能小的集群。

不幸的是,使用 1 节点 GKE 时,集群中的 Istio Pod 无法正确启动

  • g1-小或
  • n1-标准-1

簇。例如,istio-pilot 失败,状态为“0 个可用更新副本 - 无法调度”。

我没有发现任何提示表明我的集群资源已超出,所以我想知道:

成功运行 Istio(和一些轻量级微服务)的最小 GKE 集群大小是多少?

我发现的是问题Istio#216但它不包含答案。当然,集群大小还取决于微服务,但我基本上对从最小集群开始感兴趣。

kubernetes google-kubernetes-engine istio

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

如何使用 vue.js 在 sails.js 中创建动态表单?

我将 sails.js 1.0 与 vue.js 结合使用,并希望创建一个动态表单,其中包含基于用户偏好的动态输入量。因此,用户应该能够添加另一个输入,输入数据并发送包含动态数据量的完整表单。

我的表格如下所示:

<ajax-form action="addStuff" :syncing.sync="syncing" :cloud-error.sync="cloudError" @submitted="submittedForm()" :handle-parsing="handleParsingForm">
...
    <input class="form-control" id="input1" name="input1" type="text" :class="[formErrors.password ? 'is-invalid' : '']"
                      v-model.trim="formData.input1" placeholder="Input #1" autofocus>
...
    <ajax-button type="submit" :syncing="syncing" class="btn btn-dark">Save changes</ajax-button>

</ajax-form>
Run Code Online (Sandbox Code Playgroud)

帆中的动作addStuff如下所示:

module.exports = {
  friendlyName: 'Do some stuff',
  description: 'Do some stuff with the form data.',

  inputs: {

    input1: {
      description: 'The first input.',
      required: true
    }

  },


  fn: async function (inputs, exits) {
    // Do some stuff with the inputs
    return …
Run Code Online (Sandbox Code Playgroud)

javascript sails.js vue.js

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

在 Google Kubernetes Engine 上托管 sails.js 应用程序时,我收到所有资产的 404 错误

我想在 Google Kubernetes Engine 上运行 sails.js 应用程序。在本地运行应用程序 docker 容器效果很好。到 GKE 的部署是通过 gitlab Auto-Devops 管道完成的。到目前为止,将应用程序部署到 GKE 正在运行,我可以使用 gitlab-CI 生成的域访问 sails.js 应用程序的页面 - 例如xyz-review-autodevops-123.my.host.com

但是,当访问页面时,只能加载所请求的页面 - 所有资源(例如图像、javascript 和 css 文件)都不会加载,而是返回 404。

当查看 GKE 中的 nginx-ingress-controller 日志时,我发现请求了这些 url,但结果是 404:

[05/Aug/2018:12:27:25 +0000] "GET /js/cloud.setup.js HTTP/1.1" 404 9 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36" 573 0.004 [my-app-review-autodevops-1232u0-my-app-443] xx.xx.xx.xx:80 9 0.004 404
Run Code Online (Sandbox Code Playgroud)

还经常记录如下错误。我不确定这是否与此问题有关,但仍然想提一下,以防万一:

error obtaining PEM from secret my-app-1239989/review-autodevops-1232u0-my-app-tls: error retrieving secret my-app-1239989/review-autodevops-1232u0-my-app-tls: secret my-app-1239989/review-autodevops-1232u0-my-app-tls was not found" …
Run Code Online (Sandbox Code Playgroud)

sails.js gitlab-ci kubernetes google-kubernetes-engine kubernetes-ingress

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

我需要在 Google Cloud Datastore 中使用什么索引才能根据 ID 和其他属性进行过滤?

我使用 Google Cloud Datastore 来存储由数据存储生成的 ID 作为主键的实体。此外,在本例中,我还存储每个实体的其他属性owner

实体在 Google Cloud Datastore 控制台中如下所示:

|Name/ID             |owner           |...|
|id=5657437197565952 |5634472569470976|...|
Run Code Online (Sandbox Code Playgroud)

然后我想根据key (id)和 属性过滤实体owner过滤实体。

为此,我知道我需要一个复合索引才能同时过滤字段(id)和所有者。所以我使用以下index.yaml文件创建了一个复合索引:

indexes:
- kind: job
  ancestor: no
  properties:
  - name: __key__
  - name: owner

# AUTOGENERATED
Run Code Online (Sandbox Code Playgroud)

索引显示在云控制台中,如果我使用云控制台 UI 过滤这两个字段,它会过滤表中的正确实体。我在那里做的过滤器是:

  • 键的大小等于:key(job,5657437197565952)
  • 所有者等于字符串:5634472569470976

但是,当我尝试使用以下代码通过 Google 的 Node.js 库检索该实体时,我没有得到任何结果:

const {Datastore} = require('@google-cloud/datastore');

async function quickStart() {
  const projectId = 'myproject';

  // Creates a client
  const datastore = new Datastore({
    projectId: projectId,
  }); …
Run Code Online (Sandbox Code Playgroud)

node.js google-cloud-datastore google-cloud-node

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

抛出错误“[core/no-app] 未创建 Firebase 应用程序 '[DEFAULT]' - 调用 Firebase.initializeApp()”

我有一个返回主页的主文件,并且在主页上我尝试调用一个新文件(test.dart)。现在的问题是这个test.dart文件抛出了一些我无法解决的错误,因为我对 flutter 和 Firebase Firestore 完全陌生。这是代码test.dart

import 'package:firebase_database/firebase_database.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
// import 'package:vola1/colors.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_core/firebase_core.dart';

class test extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
        // floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat,
        body: StreamBuilder(
      stream: FirebaseFirestore.instance
          .collection('countries')
          .doc('nW9L4LGpn2MZVyiTyUII')
          .snapshots(),
      builder: (context, snapshot) {
        if (!snapshot.hasData) return Text('Loading data.. please wait..');
        return Container();
      },
    ));
  }
}


Run Code Online (Sandbox Code Playgroud)

这是它抛出的错误

======== Exception caught by widgets library =======================================================
The following FirebaseException was thrown building …
Run Code Online (Sandbox Code Playgroud)

dart firebase flutter google-cloud-firestore

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