reactjs - 单击reactJs后如何更改按钮上的图像
问题描述
我有一个带有图像的保存按钮(带边框的图标)。我想在按钮单击时更改图标颜色是成功的
const saveClickProperty = () => {
console.log("test");
if(userId) {
setLoading(true);
propertyUserSave({
userId: userId,
propertyId: property._id
}).then((resp) => {
console.log("hello");
openNotification("", "Property Saved");
if (isSuccess(resp)) {
console.log("inside");
openNotification(userMessage.successHeader, userMessage.propertySaved);
}
}).finally(() => setLoading(false));
}
}
我想改变 save.png
<div className="saveAction">
{userId &&
<a onClick={saveClickProperty} className="">
<div className="ActionDiv">
<img src="/images/index/save.png" alt="save" /> {' '} Save
</div>
</a>
}
</div>
单击按钮后更改 save.png 图像颜色的任何想法(我的意思是当属性成功保存时)。
解决方案
一种可能的解决方案是创建一个状态并在保存属性后更改该状态,以便重新渲染组件(图标颜色和图像)。
状态示例:
const [success, setSucess] = useState(false);
图像示例:
const sucessImage = <img src="/images/index/NEWIMAGE.png" alt="save" />;
const defaultImage = <img src="/images/index/save.png" alt="save" />;
<div className="saveAction">
{userId &&
<a onClick={saveClickProperty} className="">
<div className="ActionDiv">
${success ? sucessImage : defaultImage} {' '} Save
</div>
</a>
}
</div>
改变状态的例子:
...
}).then((resp) => {
setSucess(true);
console.log("hello");
openNotification("", "Property Saved");
推荐阅读
- google-bigquery - 使用源谷歌驱动器创建表模式并在 bigquery 表中加载数据
- service - 无法设置服务的优先级
- swift - 如何使用 SwiftUI 的 onDelete() 函数访问数组位置
- python - 用 OpenCV + Python 拼接四个图像
- swift - ScrollView 在关闭 ViewController 并调用 viewDidLoad 时不会重新加载
- python - 从网站抓取价格为零的问题
- python - 如何遍历 UnqLite 集合并提取数据
- flutter - 用于颤振的 Chopper 库时请求中的内容类型被覆盖
- vhdl - if 会产生其他支持吗?
- database - 如何对放置在 docker 容器中的 oracle DB 启用统一审计?