小编Jon*_*att的帖子

如何在 Netlify lambda 函数之间共享代码

我有 3 个独立的函数,每个函数都在它们自己的文件夹中。它们都使用 Twilio 客户端和 Apollo 客户端分别处理 SMS 和 GraphQL 服务器。

与其在每个文件中都拥有实例化每个客户端(从 env 等获取密钥)的所有代码,不如将它放在某个地方并需要它?

我尝试将代码放入顶级函数/文件夹中的 .js 文件中,并在函数代码中要求它,如下所示,这在本地运行良好,netlify devModule not found '../twilioClient'在实时环境中调用函数时出错。

/functions
  apolloClient.js
  twilioClient.js
  package.json - specifying deps used by above files
  /auth
    auth.js - require('../apolloClient')
    ...
  /trails
    trails.js - require('../twilioClient') etc.
    ...
Run Code Online (Sandbox Code Playgroud)

code-sharing aws-lambda netlify serverless netlify-function

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

Redux形式v6 isDirty(和isPristine)选择器在状态更改时不会触发重新渲染

我正在尝试从父组件检测表单状态是否脏,因此,如果表单值已更改,我只能显示一个提交按钮。

初始渲染按预期显示为false,但是更改值不会触发使用新vlaue的重新渲染。

import React from 'react'
import { isDirty } from 'redux-form'
import { connect } from 'react-redux'

<Parent>
  { props.isDirty ? <SubmitButton /> : null }
  <Form {...etc} />
</Parent>

const mapStateToProps = state => ({
  ...
  isDirty: isDirty('myForm')(state),
})

export default connect(mapStateToProps, null)(Parent)
Run Code Online (Sandbox Code Playgroud)

控制台日志记录props.isDirty显示的初始呈现<Parent/> isDirty为false。但是,更改值不会触发<Parent/>使用新值重新呈现。

更新:

经过进一步调查,我认为这是一个错误:

const mapStateToProps = (state) => {
  console.log(isDirty('myForm')(state)
  return {
    ...
    isDirty: isDirty('myForm')(state),
  }
Run Code Online (Sandbox Code Playgroud)

此处,更改表单值会mapStateToProps按预期触发,但isDirty始终为false。

reactjs immutable.js react-native redux redux-form

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