小编Ger*_*cke的帖子

react-native 组件的 flex 属性的“默认”值是多少?

我的 React Native 应用程序中有一个简单的按钮组件,仅使用styled-components. 这是它的样子:

const ButtonContainer = styled.TouchableOpacity`
  border-radius: 12px;
  margin: 6px;
  flex-basis: ${props => props.flexBasis || "20%"};
  background: ${props => props.backgroundColor || "orange"};
  justify-content: center;
  align-items: center;
  flex: ${props => props.flex || 0};
`;
Run Code Online (Sandbox Code Playgroud)

因此,当我传入这样的 flex 道具时,<ButtonContainer flex="1" />我希望它填充可用空间。它按预期工作。但是当我不传入 flex 属性时,我希望它表现得就像我从未设置过它一样。(不要占用整个可用空间)。

这不起作用。它仍然占用所有可用空间。当我flex: ${props => props.flex || 0};一起摆脱这条线时,它正在工作,但我想将其设置为flex: 1有时(可重用组件)

那么flexreact-native 组件的默认设置是什么?

我已经尝试过undefinednull-1但根本没有效果。

react-native

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

我应该在2019年将JWT存储在哪里,localStorage真的不安全吗?

有趣的话题。由于我正在使用Node.js ApiReact Redux Client创建我的第一个真正的大型项目,因此需要身份验证。

现在,我不知道如何“正确地”处理身份验证。

自从我读了很多有关它的主题,但观点却有所不同。

因此,起初有人立即说:不要在JWT中使用localStorage。

例如,这里有一篇文章:https : //dev.to/rdegges/please-stop-using-local-storage-1i04

这是auth0的另一篇文章:https ://auth0.com/docs/security/store-tokens

但是后来我深入研究了认证的广阔世界,发现很多人说:

“ localStorage和cookie一样安全”

例如,从第一篇文章的第一条评论,第三条回复(这里是链接:https : //dev.to/jondubois/comment/373l

我的意思是他说对了吗?阅读了该文章以及其他一些文章和评论后,如果您不是拥有非常敏感数据的银行,将其存储在localStorage中就可以了。

所以在这里我不在2019年,不是一个初学者,也不是一个有经验的开发人员,问我自己应该如何实现此身份验证流程而又不要过于复杂(例如,有将jwt存储到httpOnly cookie中的流程),但是在另一方面也不太容易被黑客入侵。

我正在尝试创建一个论坛应用程序。您可以注册,创建自己的论坛,然后其他用户可以注册该论坛。因此,在基本身份验证中,我只是通过JWT发送user_id和令牌。

在此,我非常感谢您的意见和建议。

javascript security authentication session reactjs

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

为什么我不能将线性渐变与“样式组件”一起使用?

问题:

当我在react-native中创建一个具有这种样式的简单视图时,使用styled-components

const Container = styled.View`
  flex: 1;
  background: linear-gradient(#006ded 0%, #1bace2 34.48%, #00e2ed 100%);
`;
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

错误:无法解析声明“背景:线性渐变(#006ded 0%,#1bace2 34.48%,#00e2ed 100%)”

这不是线性渐变的正确使用吗?我有一个朋友的设计文件,只是复制了CSS代码。我不得不承认,我对 css 不太擅长,但我在 mozilla 文档上查了一下。好像语法不正确?

如何使用 3 种颜色实现此渐变?

css gradient styled-components

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

为什么我总是收到不允许通配符 * 的 cors 错误,尽管我在服务器上指定了一个来源?

我使用 Apollo Server 和 Apollo Client 创建了一个简单的 graphQL 聊天。

它还使用会话 cookie,所以我使用 npm 包初始化服务器,cors如下所示:

app.use(
  cors({
    credentials: true,
    origin: "http://localhost:3000"
  })
);
Run Code Online (Sandbox Code Playgroud)

在客户端,我使用 apollo 客户端并创建一个像这样的 http 链接:

const httpLink = new HttpLink({
  uri: "http://localhost:4000/graphql",
  credentials: "include"
});
Run Code Online (Sandbox Code Playgroud)

因此,我包含凭据,并且服务器具有我的客户端的来源(确实是http://localhost:3000 - create-react-app 默认值)。

当我想运行查询时,我在浏览器控制台中收到此错误:

从源“ http://localhost:3000 ”获取“ http://localhost:4000/graphql ”的访问已被 CORS 策略阻止:响应中“Access-Control-Allow-Origin”标头的值当请求的凭据模式为“包含”时,不得为通配符“*”。

为什么它说响应头有一个通配符 * 集,但在 cors 上我设置了一个特定的来源,所以它不应该是一个通配符对吗?

伙计们,我在这里错过了什么?我当然也重新启动了两台服务器。

当我这样设置客户端时:

const httpLink = new HttpLink({
  uri: "http://localhost:4000/graphql",
  credentials: "same-origin"
});
Run Code Online (Sandbox Code Playgroud)

我没有从 cors 收到错误消息,但我没有从服务器收到 cookie。Cookie 有效是因为在 graphQL Playground 上一切都按预期进行。

如果你想看完整代码:https : //github.com/SelfDevTV/graphql-simple-chat

cors express reactjs graphql

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

当我第二次运行测试时,为什么在 Mongoose 中出现错误“编译后无法覆盖模型”?

我已阅读相关帖子:一旦编译 Mongoose,就无法覆盖模型

问题是这些解决方案都没有帮助我解决我的问题。

我收到标题中的错误,我有以下设置:

文件夹结构:

在此处输入图片说明

我的模型看起来像这样:

论坛.js

const mongoose = require("mongoose");
const Schema = mongoose.Schema;
const topicGroupSchema = require("./topicGroups");

const forumSchema = new Schema({
    title: String,
    topicGroups: [topicGroupSchema]
})

const Forum = mongoose.model("forums", forumSchema);

module.exports = Forum;
Run Code Online (Sandbox Code Playgroud)

主题组.js

const mongoose = require("mongoose");
const Schema = mongoose.Schema;

const topicGroupSchema = new Schema({
    title: String,
   // Todo: add topics
})

module.exports = topicGroupSchema;
Run Code Online (Sandbox Code Playgroud)

我的 test_helper 和 saveForum_test.js 文件如下所示:

saveForum_test.js

const assert = require("assert");
const Forum = require("../model/forums")

describe("Creating records", () => …
Run Code Online (Sandbox Code Playgroud)

mocha.js mongoose mongodb node.js

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

如何使用 C# WebClient 向 Google Translate Api 发送 POST 请求?

我现在用谷歌搜索了将近一个小时,但找不到任何可以帮助我的东西。我是一名初级程序员,从 TeamTreeHouse 学习了 C# 序列化课程。在这里我也学会了如何使用WebClient。

现在我认为一个好的实践项目是制作一个翻译应用程序,将用户在 POST 请求中输入的内容发送给谷歌,然后谷歌将答案作为我反序列化的 Json 返回。

问题是我通读了 api 的文档,但我很困惑我应该向 google 发送什么内容以及到底如何做到这一点?

我知道这个方法webclient.Headers.Add(arguments here),但我真的不知道它还需要什么。

您可以在这里找到一个示例:

https://cloud.google.com/translate/docs/translated-text

https://translation.googleapis.com/language/translate/v2 每个翻译请求需要三个查询参数:

目标语言:使用目标参数指定要翻译成的语言。源文本字符串:使用 q 参数指定要翻译的每个文本字符串。API key:使用 key 参数来识别您的应用程序。如果您使用 OAuth 2.0 服务帐户凭据(推荐),请不要提供此参数。

所以问题是该示例 URL 中没有占位符,我可以将 api 密钥 + 源文本字符串放入目标语言。

那么我到底应该向 google 发送什么,以便它知道我想要什么并返回 JSON 文件?

也许有人可以帮助我。我知道有一个官方库专门用于此目的,但我想练习序列化并使用 WebClient 类进行网络抓取,所以我想这样做。

c# webclient google-translate

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