【发布时间】:2020-10-25 21:42:54
【问题描述】:
下面是我的个人项目代码,我可以在其中跟踪我的每月订阅,如果我必须添加订阅,我只需向现有数组添加一个对象。但是,出于测试目的,当我尝试在 handleSubmit 中使用 console.log(value.startDate) 时,它给了我 undefined 并导致进一步的问题。我将如何解决它?
import React from 'react';
import PropTypes from 'prop-types';
const List = () => {
const [ mylist, setList ] = React.useState([]);
const [ value, setValue ] = React.useState({ subscription: '', startDate: '', paymentTime: 0 });
const handleSubmit = (e) => {
console.log(value.startDate);
setList(mylist.push(value));
e.preventDefault();
};
const handleOnChange = (event) => {
setValue({ [event.target.name]: event.target.value });
};
return (
<div>
<div className="for_list">
<ul className="list">{mylist.map((obj) => <li key={obj.subscription}>{obj.subscription}</li>)}</ul>
</div>
<div className="for_form">
<form>
<input type="text" name="subscription" onChange={handleOnChange} value={value.subscription} />
<input type="text" name="startDate" onChange={handleOnChange} value={value.startDate} />
<input type="number" name="paymentTime" onChange={handleOnChange} value={value.paymentTime} />
</form>
</div>
<button onClick={handleSubmit}>Add Item</button>
</div>
);
};
// it just removes the error above.
List.propTypes = {
list: PropTypes.node
};
export default List;
【问题讨论】:
-
不要改变属于你状态的列表和对象。
标签: reactjs react-hooks state jsx