React Native中无需useState钩子,点击时通过e.currentTarget设置样式可行吗?
在React Native中不使用useState直接通过点击事件修改元素样式可行吗?
不行,这种方式在React Native里完全走不通。
React Native的组件和浏览器里的DOM元素不是一回事,TouchableOpacity的onPress事件参数里的e对象,根本没有currentTarget.style这个属性——你写的是Web前端操作DOM的思路,但这套逻辑在React Native里不适用。
要实现点击修改样式的效果,必须用React的状态管理(比如useState)来驱动UI更新,举个简单的示例:
import { useState } from 'react'; import { TouchableOpacity, Text } from 'react-native'; export default function ColorChangeButton() { const [textColor, setTextColor] = useState('black'); return ( <TouchableOpacity onPress={() => setTextColor('red')}> <Text style={{ color: textColor }}>点击我变成红色</Text> </TouchableOpacity> ); }
React Native是状态驱动UI的框架,只有当状态发生变化时,组件才会重新渲染,对应的样式才会更新。直接去操作所谓的"元素样式"不符合它的设计逻辑,也没有对应的底层API支持。
内容的提问来源于stack exchange,提问作者JeremyFc
相关产品推荐
相关产品推荐

