我的 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
有时(可重用组件)
那么flex
react-native 组件的默认设置是什么?
我已经尝试过undefined
,null
并-1
但根本没有效果。
有趣的话题。由于我正在使用Node.js Api和React 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和令牌。
在此,我非常感谢您的意见和建议。
问题:
当我在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 种颜色实现此渐变?
我使用 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
我已阅读相关帖子:一旦编译 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) 我现在用谷歌搜索了将近一个小时,但找不到任何可以帮助我的东西。我是一名初级程序员,从 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 类进行网络抓取,所以我想这样做。