React中如何将userNameApp转为字符串存入MongoDB数据库?
解决方法
你的问题核心是错误使用了useState——useState返回的是包含状态值和更新函数的数组,而非直接返回字符串。虽然控制台看起来输出了名字,但实际userNameApp是数组,不符合数据库String类型的要求。
方案1:无需状态管理(推荐,仅用于固定拼接值)
直接将拼接结果赋值为字符串,不需要用useState包裹:
var userInfo = JSON.parse(window.localStorage.getItem('current-session')); // 直接拼接成字符串 const userNameApp = userInfo['fname'] + " " + userInfo['lname']; console.log(userNameApp); // 提交数据(注意修正原代码多出来的括号) Axios.post("http://localhost:3001/insertActiveUser", { userNameApp: userNameApp });
方案2:若需用状态管理该值
如果后续需要修改userNameApp,用解构语法取出useState返回的实际字符串值:
var userInfo = JSON.parse(window.localStorage.getItem('current-session')); // 解构出状态值和更新函数 const [userNameApp, setUserNameApp] = useState(userInfo['fname'] + " " + userInfo['lname']); console.log(userNameApp); // 此处输出纯字符串 // 提交时直接传入状态值 Axios.post("http://localhost:3001/insertActiveUser", { userNameApp: userNameApp });
额外修正:提交代码的语法错误
原代码中Axios.post末尾多了一个闭合括号,会导致语法报错,需要去掉多余的)。
内容的提问来源于stack exchange,提问作者John Ezkiel
相关产品推荐
相关产品推荐

