【发布时间】:2022-01-09 06:01:12
【问题描述】:
我是新来的,我正在尝试创建一个应用程序以在我的投资组合中使用。本质上,该程序是一个可以访问不同菜单的菜单(json文件:texas_pick.js,boutine.js ...),该程序旨在以按钮的形式显示菜单选项,按钮的详细信息是从它们的相应的 json 文件。我面临的问题是,当单击菜单选项时,会检索最后一个菜单项的数据。我对后端进行了编程,只将商品的名称和价格推送到数据库,而前端则检索这些数据并将其显示在表格上。检索到的数据只是最后一个按钮的,而不是任何其他的。我相信问题可能出在我的按钮代码中。非常感谢您提供的任何帮助/提示/建议。 I clicked every menu item and only the data from the last one was retrieved
从“反应”导入反应 从“反应”导入 {useEffect,useState} 从'axios'导入axios 从“../../json_files/texas_pick.json”导入 Texas_Pick 导入'./Mid_Container.css'
函数 Mid_Container() { const [items, setItems] = useState(Texas_Pick);
const [order, setOrder] = useState({
item: '',
cost: ''
})
const createOrder = () => {
axios
.post("http://localhost:5000/orders", order)
.then(res => {window.location.reload(false)})
.catch(err => console.error(err));
}
const item1 = items[0];
const item2 = items[1];
const item3 = items[2];
const item4 = items[3];
const item5 = items[4];
const item6 = items[5];
return (
<div className="Mid_Container">
<button
style={{backgroundImage: `url(${item1.image})`}}
value={order.item=item1.item,order.cost=item1.price}
onClick={createOrder}
>
<p id="pPrice">${item1.price}</p>
<p id="pItem" >{item1.item}</p>
</button>
<button
style={{backgroundImage: `url(${item2.image})`}}
value={order.item=item2.item,order.cost=item2.price}
onClick={createOrder}
>
<p id="pPrice">${item2.price}</p>
<p id="pItem" >{item2.item}</p>
</button>
<button
style={{backgroundImage: `url(${item3.image})`}}
value={order.item=item3.item,order.cost=item3.price}
onClick={createOrder}
>
<p id="pPrice">${item3.price}</p>
<p id="pItem" >{item3.item}</p>
</button>
<button
style={{backgroundImage: `url(${item4.image})`}}
value={order.item=item4.item,order.cost=item4.price}
onClick={createOrder}
>
<p id="pPrice">${item4.price}</p>
<p id="pItem" >{item4.item}</p>
</button>
</div>
)
}
导出默认的 Mid_Container
【问题讨论】:
-
您的 onClick 事件会触发 createOrder 函数,该函数始终传递相同的参数“order”。你永远不会改变“order”的值,所以你总是得到相同的数据。您还应该映射您的 items 数组,以免重复您的 JSX 代码。像这样,您将能够使用 map() 函数的 Index 参数访问每个项目
标签: node.js reactjs mongodb express