reactjs - React js 和 axios POST 请求发送空数组
问题描述
当我尝试使用 axios 发布到另一台服务器时,它首先发送 OPTIONS 请求然后 POST。当我检查网络连接时,它会发送带有我想要的字段的对象 this.state.array 是空的。
这很奇怪,因为我在发送它之前调试它不是空的?
var someProperty="value";
const objectToSend = {
content: this.state.myArray,
prop1: someProperty,
abc:'3456'
};
console.log('user obj------->',objectToSend); // everything is fine { content: Array(0), prop1: 'value', abc:'3456'}
axios.post('http://server:8544/api/post', objectToSend)
.then(function (response) {
}) // it sends { content: [], prop1: someProperty, abc:'3456'}
//更新数组状态的方法(或精确的键值对)
processAnswer(q, a) {
var key = q;
var val = a;
this.state.myArray['\"'+key+'\"'] = val;
}
解决方案
解决了
myArray 被定义为状态 myArray 下的数组:[]
问题是 axios 没有认识到这一点,尽管 myArray 在提交之前的状态是 ["key":"value","key2":"val2"] 在提交后它会像这样发送 myArray : []
所以我将初始状态更改为 myArray : {} 现在它发送键值对象 {"key":"value","key2":"val2"} 而不是数组,一切正常
推荐阅读
- r - Kable:如何根据行中其他值的比例对值使用条件格式
- apache-kafka - 使用 kafka 流处理器 api 处理失败的消息
- markdown - 为什么这个markdown文本渲染得这么大?
- build - 我可以使用 cargo install 分发由 build.rs 构建的二进制文件吗?
- python - Beautifulsoup 找不到隐藏元素
- javascript - 自定义 ReactJS 外部包(react-horizontal-timeline)
- amazon-web-services - Amazon Kendra:具有 Cognito 角色的 AccessDeniedException
- reactjs - 迭代数组时,记录未完全显示在反应挂钩页面中
- angular - 错误 NG8002:无法绑定到“状态”,因为它不是“a”的已知属性
- parsing - 如果 attoparsec 回溯,为什么需要 manyTill?