我有 3 个独立的函数,每个函数都在它们自己的文件夹中。它们都使用 Twilio 客户端和 Apollo 客户端分别处理 SMS 和 GraphQL 服务器。
与其在每个文件中都拥有实例化每个客户端(从 env 等获取密钥)的所有代码,不如将它放在某个地方并需要它?
我尝试将代码放入顶级函数/文件夹中的 .js 文件中,并在函数代码中要求它,如下所示,这在本地运行良好,netlify dev但Module 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) 我正在尝试从父组件检测表单状态是否脏,因此,如果表单值已更改,我只能显示一个提交按钮。
初始渲染按预期显示为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。
aws-lambda ×1
code-sharing ×1
immutable.js ×1
netlify ×1
react-native ×1
reactjs ×1
redux ×1
redux-form ×1
serverless ×1