【发布时间】:2021-01-09 07:26:55
【问题描述】:
我在 handleChange 上收到此错误。我想知道会是什么问题??
const [testState, setTestState] = useState({
activeStep:0,
firstName: '',
lastName: '',
email: '',
occupation: '',
city: '',
bio: ''
});
const { activeStep } = testState;
const { firstName, lastName, email, occupation, city, bio } = testState;
const values = { firstName, lastName, email, occupation, city, bio }
const handleChange = (e) => {
const value = e.target.value;
setTestState({
...testState,
[e.target.name]: value
});
};
const handleNext = () => {
debugger
const { activeStep } = testState;
setTestState({activeStep:activeStep+1});
};
const handleBack = () => {
debugger
const { activeStep } = testState;
setTestState({activeStep:activeStep-1});
};
我在 Material ui Stepper 中使用它,就像这样。当我单击下一步或后退按钮时,我希望文本字段数据在那里。我希望你熟悉 Material Ui Stepper,这将是真正的帮助。
function getStepContent(step) {
switch (step) {
case 0:
return (
<TransportationDetail
handleNext={handleNext}
propsTransportation={propsParent.propsRateDetailsData}
exhandleChange={(e) => exhandleChange(e)}
values={values}
/>
);
case 1:
return (
<Testing 1
handleNext={handleNext}
handleBack={handleBack}
exhandleChange={(e) => exhandleChange(e)}
values={values}
/>
);
case 2:
return (
<Testing 2
handleNext={handleNext}
handleBack={handleBack}
exhandleChange={(e) => exhandleChange(e)}
values={values}
/>
);
default:
return "No data available";
}
}
现在像这样作为道具传递给
const { values, exhandleChange } = props;
到文本域
<TextField
fullWidthid="outlined-size-normal"
variant="outlined"
name="firstName"
onChange={exhandleChange()}
value={values.firstName}
/>
<TextField
fullWidthid="outlined-size-normal"
variant="outlined"
name="lastName"
onChange={exhandleChange()}
value={values.lastName}
/>
【问题讨论】:
-
如果您添加一些与调用 handleChange 的位置相关的代码,也许有人可以帮助您
-
看起来
e.target是未定义的。您是否传递了id而不是事件本身?e.target仅在e是原始 ChangeEvent 时才存在。 -
e.target有value属性吗? .. -
如果将
console.log(e.target)放在handleChange正文中会打印什么? -
我认为 Jarek 的答案就是解决方案。如果您将
onChange={exhandleChange()}更改为onChange={exhandleChange},您将在handleChange上获得该事件
标签: javascript reactjs react-native material-ui