Javascript 单击按钮时按特殊顺序保存数据
我创建了一个应用程序,用户可以在其中向我的示例中的特定Javascript 单击按钮时按特殊顺序保存数据,javascript,reactjs,Javascript,Reactjs,我创建了一个应用程序,用户可以在其中向我的示例中的特定汽车添加一些注释。用户必须能够添加评论和评价汽车 const-App=()=>{ const[state,setState]=useState({visible:false}); const[myData,setMyData]=useState([]); 常量showModal=()=>{ 设定状态({ 可见:正确 }); }; 常数handleOk=(e)=>{ 设定状态({ 可见:假 }); console.log(“所有数据”,myD
汽车添加一些注释。用户必须能够添加评论和评价汽车
const-App=()=>{
const[state,setState]=useState({visible:false});
const[myData,setMyData]=useState([]);
常量showModal=()=>{
设定状态({
可见:正确
});
};
常数handleOk=(e)=>{
设定状态({
可见:假
});
console.log(“所有数据”,myData);
};
常数handleCancel=(e)=>{
控制台日志(e);
设定状态({
可见:假
});
};
返回(
开放模态
);
};代码>要使您的场景正常工作,您应该更新
和
组件,如下所示:
const Data = () => {
const [cars, setCars] = useState(data);
const setRate = (category, rate) => {
const newCars = [...cars];
let index = newCars.findIndex((c) => c.carCat === category);
newCars[index] = Object.assign(newCars[index], { rate });
setCars(newCars);
};
const setComment = (category, comment) => {
const newCars = [...cars];
let index = newCars.findIndex((c) => c.carCat === category);
newCars[index] = Object.assign(newCars[index], { comment });
setCars(newCars);
};
return (
<div>
{cars.map((i) => {
return (
<div key={i.carCat}>
<span>{i.carCat}</span>
<SetData
setRate={(rate) => setRate(i.carCat, rate)}
setComment={(comment) => setComment(i.carCat, comment)}
/>
</div>
);
})}
</div>
);
};
更新1
如何创建注释数组,例如用户添加一条注释并单击OK按钮保存,然后再次打开模式并为该块添加另一条注释,并以这种方式创建注释数组
基本上,您需要进一步了解这很好,但是如何创建注释数组,例如用户添加一条注释,然后单击确定
按钮保存,然后再次打开模式并为该块添加另一条注释,并以这种方式创建注释数组。你能帮忙吗?Thanksi尝试newCars[index]=Object.assign(newCars[index],{comment:[…comment,comment]})代码>,但它会将每个leter作为一条注释保存。如何修复?我有一个问题,为什么,当我打开模式窗口,然后键入注释,在键入注释后立即单击星号,文本消失?谢谢您的帮助,请?
const SetData = ({ setRate, setComment }) => {
return (
<div>
<Rate onChange={setRate} />
<input
onChange={(e) => setComment(e.target.value)}
placeholder="comment"
/>
</div>
);
};
<SetData
setRate={(rate) => setRate(i.carCat, rate)}
setComment={(comment) => setComment(i.carCat, comment)}
/>