我正在制作一个React/Redux应用程序.在我的一个动作中,dispatch在没有明显原因的情况下被射击6-8次.请参阅addMarkersRequestAddress下面的组件的操作文件:
export function addMarkersSuccess(response) {
return {
type: 'addMarkersSuccess',
status: 'success',
response: response,
receivedAt: Date.now(),
};
}
export function addMarkersFailure(error) {
return {
type: 'addMarkersFailure',
status: 'error',
error: error,
receivedAt: Date.now(),
};
}
export function addMarkersRequestCoordinates(submitFormData) {
// Why is this always returning addMarkersFailure? Is it possibly related to why it always fires multiple times?
// Same code as in virtualFenceWalk actions
return (dispatch) => {
console.log('running addMarkersRequestCoordinates');
console.log('submitFormData: ',submitFormData);
let JSONbody = JSON.stringify(submitFormData);
console.log('JSONbody: ',JSONbody); …Run Code Online (Sandbox Code Playgroud) 我目前有以下 Terraform 计划:
provider "aws" {
region = var.region
}
resource "aws_instance" "ec2" {
ami = var.ami
instance_type = var.instanceType
subnet_id = var.subnet
security_groups = var.securityGroups
timeouts {
create = "2h"
delete = "2h"
}
tags = {
Name = "${var.ec2ResourceName}"
CoreInfra = "false"
}
lifecycle {
prevent_destroy = true
}
key_name = "My_Key_Name"
connection {
type = "ssh"
user = "ec2-user"
password = ""
private_key = file(var.keyPath)
host = self.public_ip
}
provisioner "file" {
source = "/home/ec2-user/code/backend/ec2/setup_script.sh"
destination = …Run Code Online (Sandbox Code Playgroud) 我正在将表单数据传递给 Go 中的控制器。我已验证数据是否已到达控制器,因为其值出现在这些变量中:
emailValue := c.PostForm("email");
passwordValue := c.PostForm("password");
Run Code Online (Sandbox Code Playgroud)
然而,我正在开发一个样板项目来尝试自学 Go,并且我对其中包含的一些进一步处理感到困惑。“无效的登录表单”错误总是在以下函数中触发:
func (ctrl UserController) Signin(c *gin.Context) {
var signinForm forms.SigninForm
if c.BindJSON(&signinForm) != nil {
c.JSON(406, gin.H{"message": "Invalid signin form", "form": signinForm})
c.Abort()
return
}
user, err := userModel.Signin(signinForm)
if err == nil {
session := sessions.Default(c)
session.Set("user_id", user.ID)
session.Set("user_email", user.Email)
session.Set("user_name", user.Name)
session.Save()
c.JSON(200, gin.H{"message": "User signed in", "user": user})
} else {
c.JSON(406, gin.H{"message": "Invalid signin details", "error": err.Error()})
}
}
Run Code Online (Sandbox Code Playgroud)
通过阅读文档和其他 Stack Overflow 问题,我无法弄清楚 BindJSON …
我正在使用Serverless部署 Node AWS Lambda。由于运行此代码的机构的内部要求,我需要通过额外的证书。我能找到的唯一解决方案是将NODE_EXTRA_CA_CERTS作为 CLI 参数传递。使用典型的环境变量(例如在dotenv中定义)不起作用,因为此时在 Node 中已经配置了证书。
我的额外证书位于MyCerts.pem项目根目录中,我尝试运行的 Lambda 函数称为function1. 在本地运行 LambdaNODE_EXTRA_CA_CERTS=./MyCerts.pem npx serverless invoke local -f function1 -l可以正常工作。但是,一旦我使用 部署到 AWS npx serverless deploy -v,我就找不到正确包含这些附加证书的方法,包括使用NODE_EXTRA_CA_CERTS=./MyCerts.pem npx serverless invoke -f function1 -l.
我已经尝试了所有我能想到的方法并且不知所措。有人可以帮忙吗?
ssl-certificate amazon-web-services node.js aws-lambda serverless
我在React Native中创建了一个应用程序.应用程序的一部分是由多边形表示的地理围栏,我希望用户能够使用他们的手指轻松拖动和调整多边形.
Google Maps API文档提供了使用纯JavaScript拖动(但不调整大小)多边形的明显示例.但是,由于直接将Google地图集成到React中似乎没有真正起作用,我使用的是react-native-maps.似乎多边形的可拖动属性在那里不可用.A marker可以拖动,我可能会根据标记的新位置重新渲染多边形,但是1)标记拖动速度很慢,需要在标记上升一秒钟之前将标记向下推,并且2)重新开始-render不会流动.这就是拖动标记的样子(请注意我还没有对多边形重新渲染进行编码):
它很笨重 - 你通常需要按几次才能真正拿起标记.动画很慢.如果你没有关闭mapview滚动(我有,但它需要在生产中),你经常最终滚动地图而不是移动标记.
我知道我想要的是可能的,因为我经常使用的应用程序做了类似的事情.见下文:
这个应用程序显然使用谷歌地图,虽然我无法验证它是否使用React Native.如何实现相同的流动性和易用性?
编辑1:鉴于浪费时间的浪费动画marker似乎硬编码,我相当肯定成功解决我的问题根本不会使用markers.来自另一个应用程序的工作示例似乎也没有使用它们.
值得注意的是,如果我添加onPress= { (e) => console.log(e.nativeEvent.coordinate) }到MapView组件,无论我在地图上单击哪里,都会获得纬度/经度的即时控制台日志.应该可以将这些点存储在定义多边形形状的对象中.然后问题变成1)如何流畅地重新渲染多边形(并且只有多边形),以及2)当你不使用时,MapView API不具有在按下时连续触发的事件marker.
另一方面,API 确实具有一个事件,onMarkerDrag在拖动时会持续触发marker.
我正在创建一个带有Material UI的表单。该表格有两个部分。一个是用户的送货地址,另一个是账单地址。在许多情况下,后者与前者相同,因此我提供了一个复选框来自动填写帐单地址和送货地址。它通过调用一个函数来实现,该函数将待更新字段的值设置为等于另一个字段的值,该值保存在 React 状态中。
MUIInput组件自己处理字段。该InputLabel组件还用于标记它们。通常,在字段中输入值时,InputLabel文本会像这样移动到字段上方:
但是,当检查复选框并通过在送货地址字段中键入帐单地址字段中的值填充值时,标签将失败使其失去:
我一直无法解决这个问题,Stack Overflow 上的类似问题似乎也没有解决我的问题。我该如何解决?
编辑:
这是屏幕截图中的代码:
<Grid container spacing={40} className={classes.formContainer}>
<Grid item xs>
</Grid>
<Grid item xs>
<FormControlLabel
control={
<Checkbox
checked={this.state.sameAddressScreen2}
onChange={this.handleSameAddressScreen2}
value="sameAddressScreen2"
/>
}
label="Same as Location Address"
/>
</Grid>
</Grid>
<Grid container spacing={40} className={classes.formContainer}>
<Grid item xs={6}>
<FormControl margin="normal" required fullWidth>
<InputLabel htmlFor="locationStreetAddress1">Street Address 1</InputLabel>
<Input id="locationStreetAddress1" name="locationStreetAddress1" autoFocus value={this.state.locationStreetAddress1} onChange={this.handleChange} />
</FormControl>
</Grid>
<Grid item xs={6}>
<FormControl margin="normal" required fullWidth>
<InputLabel htmlFor="mailingStreetAddress1">Street Address 1</InputLabel> …Run Code Online (Sandbox Code Playgroud) 我正在尝试将一个简单的 HTML 表单发布到我的后端,它使用 Golang 和Gin。这是 HTML:
<form action="/login" method="post" name="loginForm">
<div>
<input type="text" placeholder="Email" name="email"></input>
</div>
<br /><br />
<div>
<input type="password" placeholder="Password" name="password"></input>
</div>
<br /><br />
<input type="submit"></input>
<br /><br />
</form>
Run Code Online (Sandbox Code Playgroud)
这是我的路线main.go:
r.POST("/login", func(c *gin.Context) {
//What do I need to put here?
formContent := c.PostForm("loginForm")
c.JSON(200, gin.H{
"status": "posted to login",
"message": "whoo",
"form": formContent})
})
Run Code Online (Sandbox Code Playgroud)
当我提交表单时,我收到 JSON 响应,但它formContent是一个空字符串。我猜我在 上使用了错误的方法c,但我对 Golang 不太有经验,所以不知道用什么来替换它。我也不确定 Gin 在这里引入了哪些附加功能,因为我本质上是通过示例项目中的反复试验来学习的。
如何正确访问后端的表单数据?
我正在使用 Stripe 的结帐功能。我的产品需要几分钟才能生成,因此我想保留资金,仅在客户的产品准备就绪后才向他们收费。是否可以在不重构的情况下使用此功能来做到这一点?
在 React Native 中,我有以下内容:
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { StyleSheet, Text, View, TouchableHighlight } from 'react-native';
import Immutable from 'immutable';
const styles = StyleSheet.create({
map: {
position: 'absolute',
top: 0,
left: 0,
right: 0,
bottom: '20%',
},
});
export default class VirtualFenceBottom extends Component {
constructor(props) {
super(props);
this.state = { markers: this.props.markers };
}
populateMarkers = () => {
let markersVar = this.state.markers;
fetch('http://localhost:8080/virtualFence', {
method: 'GET',
headers: {
'Content-Type': 'application/json' …Run Code Online (Sandbox Code Playgroud) react-native ×3
reactjs ×3
forms ×2
go ×2
amazon-ec2 ×1
aws-lambda ×1
elastic-ip ×1
fetch-api ×1
geofencing ×1
google-maps ×1
html ×1
ios ×1
javascript ×1
material-ui ×1
node.js ×1
redux ×1
routes ×1
serverless ×1
terraform ×1