小编Tai*_*chi的帖子

在Vue.js`mount`中可以使用`async/await`吗?

我想做这样的事情mounted() {}:

await fetchData1();
await fetchData2UsingData1();
doSomethingUsingData1And2();
Run Code Online (Sandbox Code Playgroud)

所以我想知道这是否有效:

async mounted() {
    await fetchData1();
    await fetchData2UsingData1();
    doSomethingUsingData1And2();
},
Run Code Online (Sandbox Code Playgroud)

在我的环境中它没有引起任何错误,并且似乎运行良好.但是在这个问题中,async/await生命周期钩子没有实现.

https://github.com/vuejs/vue/issues/7209

我找不到更多信息,但实际上是否可用?

async-await vue.js vuejs2

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

我应该如何替换componentWillMount()?

我正在使用React.js,如您所知,componentWillMount()将被弃用.我想替换我componentWillMount的.

我要把它的逻辑转移到constructor.在in componentWillMount和in中执行一些逻辑之间有什么区别constructor吗?

例如,

之前

class Hello extends React.Component {
    componentWillMount() {
      doSomething();
    }

  render() {
    return <div>{this.state.name} </div>
  }
}
Run Code Online (Sandbox Code Playgroud)

class Hello extends React.Component {
    constructor(props) {
      super(props);

      doSomething();
    }

  render() {
    return <div>{this.state.name} </div>
  }
}
Run Code Online (Sandbox Code Playgroud)

另外,当doSomething是setState时,构造函数和公共prop中是否有任何不同的设置状态?

在构造函数中

constructor(props) {
  super(props);

  this.state = { foo: 1 };
}
Run Code Online (Sandbox Code Playgroud)

在公共道具

state = { foo: 1 };
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

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

useEffect 中的 useState 不更新状态

我是 React Hooks 新手,正在使用 React 16.13.1。

我将实现Auth能够处理登录的组件。

但它似乎没有正确更新状态currentUser,即使setCurrentUser是用响应对象调用的。

这段代码有什么问题?

import React, { useState, useEffect } from "react";
import { Route, Redirect } from "react-router-dom";
import { checkLoggedIn } from "utils/Api";

export const Auth = (props) => {
  const [currentUser, setCurrentUser] = useState(null);
  const [isLoading, setIsLoading] = useState(false);
  console.log(currentUser);

  useEffect(() => {
    const f = async () => {
      setIsLoading(true);
      console.log(isLoading);
      const res = await checkLoggedIn();
      if (!!res) { // ==> true
        setCurrentUser(res);
        console.log(currentUser); // …
Run Code Online (Sandbox Code Playgroud)

reactjs react-hooks

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

如何在结构中创建可为空的字段

我正在努力进行表驱动测试,我想这样做:

testCases := []struct {
    name          string
    testUserID    uint
    expected      User // <- maybe nil
    expectedError error
}
Run Code Online (Sandbox Code Playgroud)

因为被测试函数的返回值为*User, error

用户就是这样,它被定义为DB方案。

type User struct {
  ID uint
  CreatedAt time.Time
  UpdatedAt time.Time
  ...
}
Run Code Online (Sandbox Code Playgroud)

但是在这种情况下,我不能expected为零。

我怎样才能做到这一点?

还是我做表驱动测试的方法是错误的?

nullable go

6
推荐指数
3
解决办法
6996
查看次数

如何从 Python 中删除 GCS 文件夹?

使用https://github.com/googleapis/google-cloud-python/tree/master/storagehttps://github.com/GoogleCloudPlatform/appengine-gcs-client,我可以通过指定文件名来删除文件,但似乎没有办法删除文件夹。

有没有办法删除文件夹?

我在 stackvoerflow 中发现了这个(Google Cloud Storage:How to Delete a folder (recursively) in Python),但是这个答案只是删除了文件夹中的所有文件,而不是删除了文件夹本身。

python google-cloud-storage

5
推荐指数
2
解决办法
4868
查看次数

如何通过VSCode在新窗口中始终打开文件?

(使用MacOS Mojave, VSCode 1.28.2

我在文本编辑(例如.js,.txt,.csv等)中使用VSCode。

当我双击并在Finder或Desktop中打开文件(或“在VSCode中打开”)时,如果我要打开另一个工作区,它将在与我已经打开的工作区相同的窗口中打开文件。

如何使VSCode始终在新窗口中打开文件?

例

macos visual-studio-code

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

gcloud命令说`pyenv:python2:找不到命令`即使python2在终端中有效

我正在使用macOS Mojave 10.14.2和pyenv 1.2.7。

这些是我的pyenv配置。python2似乎可以在终端中工作。

$ pyenv versions
  system
* 2.7.14
  3.6.4

$ pyenv global
2.7.14
3.6.4

$ pyenv local
2.7.14

$ python2
Python 2.7.14 (default, Sep 12 2018, 16:35:37)
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> (It works!)
Run Code Online (Sandbox Code Playgroud)

但是当我使用gcloud命令时,它不能说找不到python2。

$ gcloud config list
pyenv: python2: command not found

The `python2' command exists in these Python versions:
  2.7.14
Run Code Online (Sandbox Code Playgroud)

另一方面,npm也需要python2的命令也可以正常工作。

它由pyenv shell命令临时修复,但是仅在关闭终端后才有效。(解决方案在这里引用:https …

macos python-2.7 google-cloud-platform gcloud

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

如何提取 Rails 枚举的字段并获取整数数组?

我正在使用 Rails 5.2。

我想提取一个枚举字段并获取一个整数数组。

class Foo < ApplicationRecord
    enum bar: { val1: 1, val2: 2 }
end

Foo.pluck(:bar) #=> ['val1', 'val2']
Foo.pluck('foos.bar') #=> ['val1', 'val2']
Foo.pluck(:bar_before_type_cast) #=> DB error!
Run Code Online (Sandbox Code Playgroud)

我可以这样写Foo.pluck(:bar).map {|bar| Foo.bars[bar]},但我想写得更短一些。

如何实现这一目标?

ruby-on-rails

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

允许使用 GCP API(例如 Drive、Sheets 等)的角色是什么?

我想使用 Python3 中的 Drive & Sheets API。我试图在 GCP 控制台中创建一个服务帐户,但它说You already have credentials that are suitable for this purpose,没有告诉我 GCP 的什么角色使它适合。

现在我想查找角色并将其添加到我最喜欢的服务帐户。我不想创建一个新的,也不想使用已经合适的。

允许使用 Google API 的角色的名称是什么?

GCP 控制台

google-sheets google-drive-api google-cloud-platform google-iam google-workspace

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

如何获取记录中列值的最大值?(大查询)

我想获取每行的最大值,而不是字段的最大值。例如,当我有一个sample_table这样的时候:

sample_table

|col1|col2|col3|
|--------------|
| 1  | 0  | 0  |
| 0  | 2  | 0  |
| 2  | 0  | 0  |
| 0  | 0  | 3  |
Run Code Online (Sandbox Code Playgroud)

我想要的查询和结果是这样的:

询问

SELECT SOME_GET_MAX_VAL_FUNC(col1, col2, col3) AS max_val FROM sample_table;
Run Code Online (Sandbox Code Playgroud)

结果

|max_val|
|-------|
|   1   |
|   2   |
|   2   |
|   3   |
Run Code Online (Sandbox Code Playgroud)

我要替换一些解决方案SOME_GET_MAX_VAL_FUNC。如果在SQL中几乎可行,那为什么呢?(我是SQL和BigQuery的新手)

注意

  • 的数量col可能很大,例如col1, col2, ... col200。因此使用解决方案CASE对我来说很难。多个列的SQL MAX?

  • 特别是,除最大值以外的其余列均等于0

sql google-bigquery

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