reactjs - 如何在 React.js 中使用道具禁用按钮?
问题描述
我是 React.js 的新手。我正在尝试使用道具值禁用按钮。这就是我正在尝试做的事情,但它无法正常工作并抛出错误Parsing error: Unexpected token, expected "..."
。这是正确的方法吗?请帮我。谢谢
import React from "react";
function Note(props) {
function handleClickUpdateA() {
props.onUpdateA(props.id);
}
var dis;
if(props.des === '1')
{
dis = 'disabled';
} else
{
dis = ' ';
}
return (
<div>
<p>{props.content}</p>
<button {dis} onClick={handleClickUpdateA}>Accept</button>
</div>
);
}
export default Note;
解决方案
button
元素得到一个disabled
道具。您可以将其设置true
为禁用它。并且false
能够做到。所以你只需要在jsx
下面改变你的喜欢。
JSX 部分:
<button disabled={dis === 'disabled'} onClick={handleClickUpdateA}>Accept</button>
但我建议使用isDisabled
变量并将其设置为true
或false
代替dis
字符串值。这是我认为的最佳实践。
所以你的代码会变成这样:
JS部分:
var isDisabled = props.des === '1' ? true : false;
JSX 部分:
<button disabled={isDisabled} onClick={handleClickUpdateA}>Accept</button>
它现在更具可读性。
推荐阅读
- javascript - 如何将反应类转换为反应钩子(firebase 存储)
- javascript - 在javascript中制作递归函数
- ruby-on-rails - 通过关联为多对多创建控制器操作
- javascript - 如何使用给定本地 url 的 OffscreenCanvas 调整 webworker 中的图像大小并将调整大小的数据返回到主线程?
- python - 不同数量的 XOR
- textbox - 在按钮单击时设置文本框文本值
- angular - Angular Date 转换为语言环境而不增加小时数
- python - 为什么当我将 .py 文件转换为基于 .exe 终端的程序时,for 循环中的打印在循环结束之前不会打印?
- arrays - 通过另一个不同大小的数组分配二维数组的子集
- mysql - SQL语句练习语句答案验证?