小编sid*_*lsa的帖子

如何将TypeScript包含一个包含对象的props接口并与defaultProps合并

我有一个类似这样的TypeScript道具界面:

interface Props {
  children: ReactNode;
  components?: object;
  mode: string;
  actions: {
    copy: boolean;
    code: boolean;
    refresh: boolean;
    source: boolean;
  };
  source?: string;
  readonly withStyles?: object;
  styles?: object;
}
Run Code Online (Sandbox Code Playgroud)

我有一个相应的defaultProps接口:

class Box extends Component<Props, State> {
  public static defaultProps = {
    mode: 'full',
    actions: {
      copy: true,
      code: true,
      refresh: true,
      source: true,
    },
  };

  ....

}
Run Code Online (Sandbox Code Playgroud)

用户应该只能actions在组件上指定部分集合,其余部分应该合并defaultProps.

例如,如果用户指定:

<Box actions={{ copy: false }} />

我希望defaultProps将填补生产缺口props.actions{ copy: false, code: true, refresh: true, source: …

typescript reactjs

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

为什么 Google OAuth2 向 url 添加哈希?

我遇到了一个问题,当我的服务器在 Google OAuth 身份验证成功后重定向回我的客户端 Web 应用程序时,一个哈希被附加到 url。

例如,如果成功后我重定向回根目录“/”,我会在浏览器 URL 中看到“ http://localhost:8080/# ”。

我已经缩小了它的来源。在 Google OAuth 的最终响应中,URL 中总是有一个哈希值。这是它发回的最终查询参数:

ssdc: 1
sidt: ALWU2cvia4QRXzs7Dw3RqBfg8YQloLpX9C5aUg+HM4Xpf+CTHcIafxUfqip/WhuRQqvkS6FTV84grnPqkA8iu/1gXWozhzPrctLG9B0IZ5a9kRfNm6f56tP1kT2u+DqrRgWn8BYWfux11IqrwHMB6PcYRrvRFqssyhyAzH4ADAwAo9hgYI5P0jv5cX25JsKPzlp84sgXDjxeEPyoAp5Z+eOVVbc/utE0rnwsmIk+SZ+fKEag1WovgpQmNUHkImSK5DAWx+tLmTTXssRcYKNqI7I/bLE6v+aBRMG15o16NYHwnEwIWBPMBas=
continue: https://accounts.google.com/signin/oauth/consent?authuser=0&part=AJi8hAObZlj15NP250sAY5c2G0NxmM46FDwsq9h5-6kQpoUvx4YDP_kq9610R0xh5kNmB6qxh0j54ERZaqnCkgOtiBX2pMqGmbw7hMLtNYQBksHIxMdjqim7rZj53JvsNzLetjoxzgj2cC9lwO1Na1R2yjMDjS6djB7aEX59UFRnT7NBnavIvvlk1OSb5O-IPTT8acugrXzV0nLnsT_kjVaECCu76Zj-bzJDJ8ccwuaJuwQPTbSmpgCRsswg-r566_CRDJ2pk8kT4c5tb0FMxNi7dnGiC1dsPAP2kwWWXWqqK8XuleSxVFjeBEGyMifGJpznOVzbj7GCFU-eZV_wYQAzgnjevVgpZCG-7Q2baH2qV8cIsvLlD-98kH8otyrys43sKCb8i6F7_WxBTWJRls9_RkRRWCHD4NYcWO8qEBdpZ7qYiNrs024&as=ou5INRbruyDfQ9BJQP-a-Q&rapt=AEjHL4PzN394wu-BbPb_rqVCLIv00iA6DcNucHv5DNZvGDs01pCKVQ9wp-i6_s6gwMqd-ylu4NDJjHCS-NzBCIf6DUCMz3Q18A&auth=hwdgWa5prArgTRk23gd04OOn18em2r18KIAtELLsHC3K__GXHILmi5WLvm2dUtFSkAiZGA.#
tcc: 1
Run Code Online (Sandbox Code Playgroud)

“continue”中的最终哈希值被添加到浏览器 URL 中。

谷歌为什么要这样做?这是特定于 OAuth 规范的吗?我不认为其他提供者会这样做。

oauth oauth-2.0 google-oauth

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

bashrc环境变量不能与Rails应用程序一起使用

我在我的〜/ .bashrc文件中设置了变量,我想用我的Rails应用程序.问题是Rails不会识别这些变量.

bashrc中:

export MYSQL_DB_USERNAME=admin
export MYSQL_DB_PASSWORD=testing123
Run Code Online (Sandbox Code Playgroud)

Rails app - database.yml

  username: <%= ENV["MYSQL_DB_USERNAME"] %>
  password: <%= ENV["MYSQL_DB_PASSWORD"] %>
Run Code Online (Sandbox Code Playgroud)

如果我进入rails控制台并输入:

ENV["MYSQL_DB_USERNAME"]
Run Code Online (Sandbox Code Playgroud)

我回来了: <= nil

我重新加载了我的bashrc文件并重新启动了终端.都没有奏效.为什么Rails不会从bashrc文件中读取这些变量?

(我正在使用RVM进行ruby版本管理,以防万一).

谢谢.

bash ruby-on-rails ruby-on-rails-4

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