我试图在Flow旁边使用react-native的动画库.不幸的是,我得到了一堆我无法解决的Flow错误(参见截图).
在下面的示例中,我在屏幕上渲染一个圆圈,并希望在使用时渲染它Animated.spring.还有什么我需要添加来与Flow做出反应原生的工作吗?
Flow版本:0.54.0/react-native版本:0.48.0
目前,我只是忽略动画.flowconfig:(
; Ignore Animated
.*/react-native/Libraries/Animated/**/.*
Run Code Online (Sandbox Code Playgroud)
在单独使用jest时,安装后即可检测到相应的打字稿定义@types/jest。
然后,我开始使用cypress进行集成测试。由于cypress使用的是mocha,因此我现在在我的jest测试中错误地看到了mocha类型定义的引用。实际上,检测到许多重叠的类型定义。例如,describe似乎在许多文件中定义了。我什至尝试实现自己的describe指向笑话的类型。不幸的是,摩卡咖啡每次都“获胜”。
当打字稿编译器检测到多个定义时,如何指定优先顺序?
我的tsconfig.json样子是这样的:
{
"compilerOptions": {
"target": "es5",
"lib": [ "dom", "dom.iterable", "esnext" ],
"types": [ "jest", "mocha" ],
"allowJs": true,
"skipLibCheck": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": true,
"strictNullChecks": true,
"forceConsistentCasingInFileNames": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": false,
"noEmit": true,
"jsx": "preserve"
},
"include": [ "src/**/*" ]
}
Run Code Online (Sandbox Code Playgroud)
但是,我也尝试了以下方法:
{
"compilerOptions": {
"target": "es5",
"lib": [ "dom", "dom.iterable", "esnext" ],
"typeRoots": [ "./node_modules/@types", "./src/types" ],
"allowJs": …Run Code Online (Sandbox Code Playgroud) export type Size =
| 'small'
| 'medium'
| 'large'
| 'big'
| 'huge';
Run Code Online (Sandbox Code Playgroud)
定义这样的Size类型让我在IDE中自动完成,无论我在哪里使用它:
然而,我还想在组件内部使用这些值:让我们说一个带有可用大小值的下拉菜单.
为了实现这一点,我正在维护一个大小对象,我可以通过利用$ Keys来提取Size FlowType :
export const sizes = {
small: 'small',
medium: 'medium',
large: 'large',
big: 'big',
huge: 'huge',
};
export type Size = $Keys<typeof sizes>;
Run Code Online (Sandbox Code Playgroud)
然而,这个解决方案需要付出代价:它会破坏我所有的自动完成功能 ...... :(有没有更好的方法来处理FlowType中的Enums?
我正在使用基于令牌的身份验证,并想知道如何在Relay Modern中将它完全绑定在一起.我已经过了一半.任何帮助深表感谢.这是我的设置:
<App />我渲染<QueryRenderer />入口点.<LoginPage />组件内部,我有一个表单,在提交时触发LoginUserMutation.当我提供有效的用户名和密码组合时,我会收到一个令牌:
localStorage.setItem('token', token)/dashboard路由history.push('/dashboard')createRelayEnvironment.js的fetchQuery我定义了如何向GraphQL后端发出网络请求:
const token = localStorage.getItem('token');{ ..., 'authorization': 'Bearer ${token}' }.然后后端能够验证用户.Soooo goood到目前为止.不幸的是,有一个问题正在破坏图片.当令牌已经存储到localStorage后应用程序初始化时,此设置很有效.但不是这样,如果您当前未在localStorage中没有令牌条目的情况下进行身份验证.
如前所述,假设您在LoginUserMutation中,突变已成功,并且您在onComplete回调中获得了有效的令牌.现在该怎么办?是的我把它存放在里面localStorage.但是如果我将用户重定向到<Dashboard />组件,我就搞砸了.为什么? - 仪表板组件需要受限数据.当应用程序首次初始化时,虽然未提供受限数据,因为没有令牌被发送到GraphQL端点.然后,当令牌最终在LoginUserMutation中可用时,Relay实际上并没有对它做任何事情.
TL;博士
Q1
我如何 - 配备有效令牌 - <Dashboard />在我发送用户之前触发重新获取组件所需的数据/dashboard.
Q2
使用JSON Web令牌(JWT)时,是否有更好的方法来处理带Relay的身份验证?特别是,从在LoginUserMutation的onComplete回调中收到有效令牌的那一步做什么?
我想使用webpack-dev-server作为我的基本Laravel应用程序.从官方Webpack文档中我学到了以下内容:
您可能希望在开发中运行后端服务器或模拟它.您不应该使用webpack-dev-server作为后端.它的唯一目的是提供静态(webpacked)资产.
您可以并排运行两个服务器:webpack-dev-server和后端服务器.
在页面底部,他们举例说明如何实现这一目标.我跟进并遇到了两条错误消息.这是我尝试将Webpack集成到Laravel应用程序中.
webpack.config.js
var path = require("path");
module.exports = {
context: path.resolve('resources'),
entry: [
'./assets/js/app.js'
],
output: {
path: path.resolve('public/assets/'),
publicPath: 'http://localhost:8080/assets/',
filename: "bundle.js"
},
devServer: {
contentBase: 'public',
hot: true,
proxy: {
"*": "http://laravel.dev/"
}
}
};Run Code Online (Sandbox Code Playgroud)
app.blade.php
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Learning Laravel</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
</head>
<body>
<div class="container">
@yield('content')
</div>
@yield('footer')
<script src="http://localhost:8080/assets/bundle.js"/>
</body>
</html>Run Code Online (Sandbox Code Playgroud)
vagrant@learning-laravel:~/learning-laravel$ webpack-dev-server --inline
Run Code Online (Sandbox Code Playgroud)
控制台输出:
http://localhost:8080/
webpack result is served from http://localhost:8080/assets/
content …Run Code Online (Sandbox Code Playgroud) 在kubernetes 部署中,我指定一个端口,如下所示:
containers:
- name: nginx
image: nginx:latest
ports:
- name: nginx-port
containerPort: 80
protocol: TCP
Run Code Online (Sandbox Code Playgroud)
现在,在服务中,我可以像这样引用该端口(允许我仅在服务中指定外部端口):
spec:
type: ClusterIP
ports:
- name: nginx-port
port: 80
targetPort: nginx-port
protocol: TCP
Run Code Online (Sandbox Code Playgroud)
现在的问题是,我可以使用以下语法在其他地方引用服务和端口nginx-service.default.svc.cluster.local:nginx-port吗?您知道我可以使用这些特殊名称来引用服务,但是我发现自己像这样对端口号进行了硬编码nginx-service.default.svc.cluster.local:80。
我正在使用Downshift和构建一个 React type advance 文本字段组件react-apollo。当用户输入时,我正在查询输入建议并将其显示在文本字段下方。
不幸的是,这段经历并不顺利。由于某种原因,Apollo 时不时会取消 50% 以上的请求。
我还记录了由 HoC 封装的组件可以访问的响应数据graphql。在所需的情况下,加载状态设置为false并且我的words数据可用。在不希望的情况下,加载状态被设置为true并且没有words可用数据。无论是期望的还是不期望的请求,后端每次都会执行。
请注意 的网络状态1。
请注意 的网络状态7。
为什么 apollo 取消这些请求?如何解决这个问题?
我正在尝试从源代码安装纱线包管理器到我的 Ubuntu 机器上。
1) 从Github Release页面下载 yarn tarball
YARN_VERSION=0.17.1
https://github.com/yarnpkg/yarn/releases/download/v${YARN_VERSION}/yarn-v${YARN_VERSION}.tar.gz
Run Code Online (Sandbox Code Playgroud)
2) 解压压缩的 tar
tar -xzf yarn-v${YARN_VERSION}.tar.gz
Run Code Online (Sandbox Code Playgroud)
3)使用它
cd ./dist/bin/yarn --version
>> 0.17.10
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好。
目标:但是,yarn通过 访问可执行文件的推荐方法是什么/usr/local/bin/yarn --version?
看来我需要创建一个符号链接。在那种情况下,提取 tarball 的最佳位置在哪里?是/usr/local/lib/yarn吗?如何创建符号链接?
flowtype ×2
reactjs ×2
animation ×1
cypress ×1
enums ×1
github ×1
graphql ×1
jestjs ×1
kubernetes ×1
laravel ×1
mocha.js ×1
react-apollo ×1
react-native ×1
relayjs ×1
typescript ×1
ubuntu ×1
webpack ×1
yarnpkg ×1