小编Sta*_*Luo的帖子

'position:absolute'与flexbox有冲突吗?

我想在屏幕顶部制作一个div棒,而不会影响其他元素,并且它的子元素位于中心.

 .parent {
   display: flex;
   justify-content: center;
   position: absolute;
 }
Run Code Online (Sandbox Code Playgroud)
<div class="parent">
  <div class="child">text</div>
</div>
Run Code Online (Sandbox Code Playgroud)

当我添加该position: absolute行时,justify-content: center变为无效.它们是否相互冲突,解决方案是什么?

编辑

谢谢大家,这是父宽度的问题.但我是反应本地所以我无法设置width: 100%.试过flex: 1align-self: stretch,既没有工作.我最终使用Dimensions来获得窗口的整个宽度,并且它工作正常.

编辑

从更新版本的React Native(我用0.49)开始,它接受了width: 100%.

css flexbox react-native

61
推荐指数
3
解决办法
8万
查看次数

将ReactCSSTransitionGroup与样式组件一起使用

我使用样式组件而不是传统的css方式.但我不知道它如何与ReactCSSTransitionGroup一起工作.

基本上,ReactCSSTransitionGroup在css资源中查找某些类名,然后在整个生命周期中应用于组件.但是,由于styled-components没有任何类名,因此样式直接应用于组件.

我知道我可以选择不使用,ReactCSSTransitionGroup因为这两种技术看起来不兼容.但是当我只使用时styled-components,似乎在卸载组件时无法渲染任何动画 - 它是纯粹的CSS,无法访问组件的生命周期.

任何帮助或建议表示赞赏.

css reactjs styled-components

24
推荐指数
2
解决办法
8596
查看次数

如何在 immer 回调中调试/记录有用的信息?

我在React应用程序中使用immer来处理状态更改。比方说,国家并没有改变,因为我所料,所以我想调试它,但两者console.logdebugger给出了一个Proxy不包含任何有用的信息,比如什么是当时的状态对象。

获取新状态的示例代码:

return immer(state, draftState => {
    // Some mutations here, didn't go as expected
    console.log(draftState.blah) // Gives 'Proxy' object
    debugger // Same deal
  })
Run Code Online (Sandbox Code Playgroud)

如何调试我的代码?

reactjs immer.js

11
推荐指数
3
解决办法
1821
查看次数

无法将现有的React Native转换为Expo:nativeVersion.major错误

刚刚下载了最新版本的Expo XDE(2.20.1)并尝试将现有的反应原生项目转换为它.我正好遵循这些步骤,当在真实设备上打开Expo客户端中的应用程序时,我收到一条错误消息:

undefined不是对象(评估'nativeVersion.major')

这个问题在Android和iOS上都会发生.

似乎expo对react/react-native版本有严格的要求,但不幸的是,我找不到版本要求列表.

我当前的依赖项(它是最新的)是: "react": "16.0.0", "react-native": "0.49.3"

那么,这个错误确实来自版本冲突吗?如果是这样,我该如何解决这个问题呢?

react-native expo

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

Jenkins管道如何与monorepo一起工作

詹金斯很新.我的存储库是一个monorepo - 包含两个子项目,web_appnative_app.我想使用Jenkins作为CI引擎,这样每次代码推送到repo时,Jenkins都会自动帮助完成构建测试交付工作流程.

我创建了一个管道项目,直觉上我应该创建两个Jenkinsfile,每个都在相关的文件夹下,即:

web_app/
  |-Jenkinsfile
native_app/
  |-Jenkinsfile
Run Code Online (Sandbox Code Playgroud)

但是,我很快意识到这会导致问题 - 我需要为几乎每个阶段/步骤更改工作目录.试着

stage('Build') { 
  steps {
      sh 'cd ./web_app/'
      sh 'ls'
      sh 'git pull'
    }
}
Run Code Online (Sandbox Code Playgroud)

但不起作用,工作目录不会更改.

我还没有找到一个有效的方法来改变整个管道的工作空间,我担心这个单一结构将导致Jenkins将来出现更多问题.我应该拆分此存储库,还是有一些方便的方法来更改工作目录?

git jenkins jenkins-pipeline

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

aws amplify codegen:如何为 TypeScript 生成基本类型?

我正在使用 amplify 构建一个 React + aws AppSync graphql Web 应用程序。一直很喜欢这个很棒的工具,但无法按照codegen我的预期工作 - 它不会为 TypeScript 前端生成基本类型。

假设我将此schema.graphql文件提供给amplify codegen

type Event @model {
  id: ID!
  name: String
  effects: [EventEffects]
}

type EventEffect {
  name: String
  delta: Int
}
Run Code Online (Sandbox Code Playgroud)

有了这个config.yml

projects:
  myapi:
    schemaPath: amplify/backend/api/myapi/build/schema.graphql
    includes:
      - src/graphql/**/*.ts
    excludes:
      - ./amplify/**
    extensions:
      amplify:
        codeGenTarget: typescript
        generatedFileName: src/API.ts
        docsFilePath: src/graphql
extensions:
  amplify:
    version: 3
Run Code Online (Sandbox Code Playgroud)

然后 codegen 给了我API.tsqueries.tsmutations.tssubscriptions.tsschema.json。问题是,没有生成任何基本类型。

我可以通过以下方式获取事件接口: …

typescript aws-appsync aws-amplify

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

Zapier-创建即时触发器

我正在使用Zapier的CLI开发人员工具包来创建一些应用程序。但是,当我创建“新对象”触发器时,官方文档中提供的url就像“全部获取”触发器一样:

method: 'GET',
url: 'http://example.com/api/objects'
Run Code Online (Sandbox Code Playgroud)

似乎Zapier不会知道何时立即创建新对象,而是Zapier每5分钟检查一次所有对象。

他们的计划表明,即使是最昂贵的计划也只能每5分钟检查一次。

那么如何创建即时触发器?就是说,我想每次在我的应用中创建对象时向Zapier发送一个请求。

node.js zapier

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

Route 53 - 创建 A 记录时未显示 Cloudfront 分布

我正在 Route 53 托管区域中为子域创建 A 记录。当我选择“Cloudfront 分发的别名”时,列表中仅显示美国东部区域,其中包含不需要的分发:

在此输入图像描述

不过,我想指出列表中未显示的另一个发行版。知道为什么不显示吗?该发行版已准备就绪,可以使用指向静态 s3 托管存储桶的 cloudfront URL 进行访问。我使用 amplify cli 托管、s3+cloudfront 选项创建它(如果有的话)。

谢谢你的帮助。

amazon-web-services amazon-cloudfront amazon-route53

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

child_process 给出“命令失败”执行 grep

我想child_process在节点中使用搜索文件的存在:

const { exec } = require('child_process');
exec('ls | grep "filename"', (err, result) => {...})
Run Code Online (Sandbox Code Playgroud)

当文件名存在时, exec 结果很好。但是当文件名不存在时,我收到一个错误:

命令失败: ls | grep“文件名”

在这种情况下,我如何判断是执行命令时出错,还是仅仅因为找不到结果?

编辑

感谢您提供有关不要以这种方式搜索文件的建议。上面的代码不是实际的代码,而只是一个演示片段,说明了我的grep. 在我的实际情况下,我正在通过task spooler在输出中搜索关键字,因此我使用了exectsp -l | grep ...

bash grep node.js

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

React Hooks - 将进程只传递一次 props 的逻辑放在哪里?

有时一个组件需要处理传递的 props 并保存在它的state. 由于处理可能很繁重,因此最好只进行一次。在 hooks 之前,它通常在 constructor or 中完成componentDidMount

现在进入钩子,它可以通过useEffect,[]作为第二个参数只运行一次来实现,但我觉得这不是最好的地方 - 我们正在做的是处理 props 并保存状态,这不是Side Effect。来自文档:“数据获取、设置订阅和手动更改 React 组件中的 DOM 都是副作用的示例。” 不要认为预处理属于其中任何一个。

那么用钩子做的最好的地方是哪里呢?

reactjs react-hooks

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

无法在 aws ec2 linux 上切换到 jenkins 用户?

当我 ssh 进入 aws ec2 Linux 实例时,我是ec2-user. 该实例是 Jenkins master。当我尝试su - jenkins输入正确的密码时,系统显示Last login: ....看起来切换成功。但whoami说我还在ec2-user

我缺少什么?谢谢!

linux amazon-ec2

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