Javascript 使用setState赋值时出现的问题
使用React是新手,在尝试更改文本字段以更新状态时遇到一些问题。使用初始状态设置为useState的功能组件 我肯定我只是错过了一些简单的事情。。。但最终还是放弃了,寻求帮助 以下是功能组件的完整代码:Javascript 使用setState赋值时出现的问题,javascript,reactjs,object,react-hooks,use-state,Javascript,Reactjs,Object,React Hooks,Use State,使用React是新手,在尝试更改文本字段以更新状态时遇到一些问题。使用初始状态设置为useState的功能组件 我肯定我只是错过了一些简单的事情。。。但最终还是放弃了,寻求帮助 以下是功能组件的完整代码: import React, { useState } from 'react'; import Step1 from '../Element/FormStep1'; const NewForm = () => { let [object, setObject] = useStat
import React, { useState } from 'react';
import Step1 from '../Element/FormStep1';
const NewForm = () => {
let [object, setObject] = useState({
property: {
entry: 'string'
}
});
function handleChange(event) {
const {name, value} = event.target;
setObject({
...object,
[name]: value
})
console.log(object)
};
return (
<form>
<Step1
handleChange={handleChange}
object={object}
/>
</form>
);
}
export default NewForm
目的是用文本输入替换值“string”
object {
property: {
entry: 'value' //Text input
}
}
如果希望对象具有value属性,则应添加
{}
你应该改变
setObject({
...object,
[name]: value
})
到
所以,我在睡了一段时间后,通过更多的在线研究,终于找到了答案。使用lodash的set方法是可行的。因此,需要对my Textfield上的name属性进行细微更改:
<TextField
name='property.value'
type='text'
onChange={props.handleChange}
/>
这项工作现在正按预期进行(几个小时后的挫折感)
注意。。。下面是我找到答案的地方:
您的对象将在下一次渲染中更改
function handleChange(event) {
const {name, value} = event.target;
const newObject = {
...object,
[name]: value
}
setObject(newObject)
console.log('newObject', newObject)
console.log('currentObject', object)
};
新建对象!=对象对象来自哪里?设置对象做什么?请提供完整的代码。否则无法回答。@errorQD请添加useState行从您的问题中,我无法理解什么是错误的,应该是怎样的,您是否可以添加所需的行为以及它是如何错误的。(显示对象在正常工作时的状态)
setObject({
...object,
[name]: { value } // added { }
})
<TextField
name='property.value'
type='text'
onChange={props.handleChange}
/>
function handleChange(event) {
const {name, value} = event.target;
set(object, name, value)
console.log(object) // to see that it worked in the console.
}
function handleChange(event) {
const {name, value} = event.target;
const newObject = {
...object,
[name]: value
}
setObject(newObject)
console.log('newObject', newObject)
console.log('currentObject', object)
};