React:输入填满后启用按钮,如何判断对象属性长度大于0?
解决React中判断inputList对象属性长度的问题
你遇到的问题核心是inputList是数组类型,需要先访问数组内的对象元素,再判断属性值的长度:
情况1:仅需判断数组第一个对象(匹配你的初始代码场景)
直接取数组的第一个元素,分别检查action和dest的长度是否都大于0:
const [inputList, setInputList] = useState([{action: "", dest: "", }]); // 取数组第一个元素,验证两个属性的长度条件 const isEnabled = inputList[0].action.length > 0 && inputList[0].dest.length > 0; <Button disabled={!isEnabled}>Continue</Button>
情况2:需要判断数组中所有对象都满足条件
如果后续inputList会新增多个对象,要求所有对象的action和dest都不为空时才启用按钮,可以用数组的every方法:
const isEnabled = inputList.every(item => item.action.length > 0 && item.dest.length > 0);
关于你提到的Object.keys没成功:这个方法是用来获取对象的键名数组(比如Object.keys(inputList[0])会得到["action", "dest"]),它本身不负责判断属性值的长度,所以不适合这个场景。
内容的提问来源于stack exchange,提问作者xyba
相关产品推荐
相关产品推荐

