javascript - 在 React 中单击时更新 JSON 对象值
问题描述
我一直在关注关于更新值的教程,它increments
是用户单击按钮时的值。
但是,我有JSON
要更新的对象值。当用户单击按钮和 时,应更新该值vice versa
。在我尝试按照示例实现之后,它没有改变。这是我的代码:
1.点击:
<div>
Point: {item.point} 
<button onClick={() => setCount(item.point + 1)} class="btn"><i class="fa fa-arrow-up"></i></button>
<button onClick={() => setCount(item.point - 1)} class="btn"><i class="fa fa-arrow-down"></i></button>
</div>
2.使用状态:
const [count, setCount] = useState(0);
3.comments.json:
{
"id": "fa1ca3c1-cc1e-4ed9-86b8-f60d8312d499",
"author": "Neal Topham",
"avatar": "http://lorempixel.com/100/100/people/1/",
"date": "2017-02-08T00:30:05.552Z",
"message": "Mungkin ada fenomena paranormal yang tidak bisa dijelaskan. Lebih baik nyala mati sendiri daripada tidak nyala sama sekali",
"point": 3,
}
4.教程链接:
解决方案
1.使用状态:
const [items, setItems] = useState([]);
2.修改按钮:
<button
onClick={() => {
// first, clone it
const newItems = [...items];
newItems[idx] = {
...item,
point: item.point + 1
};
setItems(newItems);
}}
className="btn-upvote"
>
<i className="fa fa-arrow-up"></i>
</button>
<button
onClick={() => {
// first, clone it
const newItems = [...items];
newItems[idx] = {
...item,
point: item.point - 1
};
setItems(newItems);
}}
className="btn-downvote"
>
<i className="fa fa-arrow-down"></i>
</button>
推荐阅读
- port - Mailcatcher 错误:端口 1025 已在使用中
- haskell - Haskell 中的术语“函数应用程序”
- google-app-engine - 将应用引擎的子目录路由到 wordpress 虚拟机?
- python - 在 matplotlib 和 seaborn 之间共享 x 轴
- php - php中带有AM和PM的字符串的日期格式
- java - 如何从java折叠数据透视表中的所有字段?
- asp.net - 如何在我的服务器上使用 express 运行 node js 应用程序
- javascript - 无法在回调函数中调用任何 FineUploader 方法
- javascript - 链接点击不会将用户带到新网页
- google-chrome - 获取自定义 buildpack google-chrome heroku 时出错