我是新的React原生,当我创建我的应用程序,我无法得到自动添加按钮禁用工作
我将这些属性设置为钩子:
const [taskText, setTaskText] = useState(null);
const [isDisabled, setDisabled] = useState('true');
那么我有我的功能:
const addActivity = () => {
if (taskText == null){
setDisabled('true');
}else{
setDisabled('false');
}
}
但是当我在touchableOpacity的禁用属性上使用isDisabled时,它不会更新
文本输入属性:
onChange={() => addActivity()}
可触摸不透明度:
<TouchableOpacity style={styles.addWrapper} onPress={() => handleNewTask()} disabled={isDisabled}>
<Text style={styles.addText}>+</Text>
</TouchableOpacity>
设置任务文本:(由文本输入调用)
onChangeText={text => setTaskText(text)}
当我删除所有文本时,TextInput不会自动更新吗?我该怎么做才能解决这个问题?
1条答案
按热度按时间hjzp0vay1#
这是因为您用途:
useState('true')
,并且在你的状态中总是使用字符串。当字符串不为空时,它总是true。您必须使用布尔值,而不是字符串。因此,您可以更改为:
useState(true)
并将addActivity
更改为: