React native 要在单击时使用“反应本机参照”更改不透明度吗

React native 要在单击时使用“反应本机参照”更改不透明度吗,react-native,React Native,这是我的密码。我想在单击任何TouchableOpacity组件时更改refs的不透明度。请指导我如何在react native with refs中更改不透明度或颜色。 当我点击我的重定向函数调用,以便在重定向函数中更改特定ref的不透明度时,我传递ref,routename是重定向函数 我 mport-React,{Component}来自'React'; 进口{ 看法 文本, 可触摸不透明度, 样式表 }从“反应本机”; 导出默认类导航扩展组件{ 重定向(路由名称,参考) { consol

这是我的密码。我想在单击任何TouchableOpacity组件时更改refs的不透明度。请指导我如何在react native with refs中更改不透明度或颜色。 当我点击我的重定向函数调用,以便在重定向函数中更改特定ref的不透明度时,我传递ref,routename是重定向函数

mport-React,{Component}来自'React';
进口{
看法
文本,
可触摸不透明度,
样式表
}从“反应本机”;
导出默认类导航扩展组件{
重定向(路由名称,参考)
{
console.log(this.refs[ref]]);
这个是.props.navigator.push({
标识:routeName
});
}
render(){
返回(
家
命令
购物清单
会费
{this.props.title}
);
}
}
const style=StyleSheet.create({
导航:{
排名:0,
右:0,,
左:0,,
位置:'绝对'
},
导航栏:{
flexDirection:“行”,
填充:10,
paddingTop:15,
填充底部:15,
},
导航丸:{
弹性:1,
对齐项目:'center'
},
导航文本:{
弹性:1,
textAlign:“中心”,
尺寸:16,
字体权重:'粗体',
颜色:“#ffffff”,
不透明度:0.7
},
标题栏:{
背景颜色:“#ffffff”,
弹性:1,
填充:8,
对齐项目:'中心',
边界宽度:1,
borderBottomColor:“#dddddd”
},
标题栏:{
尺寸:18
},
活动导航:{
不透明度:1
}
});

我不确定以下内容是否是您正在搜索的内容:

如果要更改TouchableOpacity的不透明度,请使用以下方法

导出默认类导航扩展组件{
陈述={
不透明度:0.1
}
handleOnPress=()=>{
这是我的国家({
不透明度:0.5//任何你想要的
});
}
render(){
报税表(
)
}

}
将不透明度值置于状态。然后让按钮单击以更改该状态的值。这将触发重新渲染,并且您的视图将更新为新的不透明度。

要展开来自pomo的答案

使用当前的样式,您可以在每个
onPress
函数中轻松调用
setState
,以更改需要更改的元素的不透明度。如果在状态中为每个项使用不同的键,则甚至不需要传递引用

然后,在样式中,可以使用样式数组来使用状态的不透明度值


style={[style.navPills,{opacity:this.state.opacityA}}
我根本不喜欢内联样式。因此,在最近的一个项目中,出于我的目的,我使用元素的“ref”值设置了元素的样式,然后触发了一个状态更改,只是为了调用render函数。这就是我相信您所要求的,这个示例代码应该为您指出正确的方向,否则这可能会在将来帮助其他人

toggleDisplay() {
  if (this.refs.blah.style.display === "") {  // currently visible
    this.refs.blah.style.display = "none";
    this.setState({showBlah = false});
  } else {  // currently not visible
    this.refs.blah.style.display = "";
    this.setState({showBlah: true});
  }
}

render() {
  // Some element defined with the ref value used above.
  return (<div>
      <div ref="blah">Now you see me...</div>
      <button onClick="this.toggleDisplay">Toggle Me</button>
    </div>);
}
toggleDisplay(){
如果(this.refs.blah.style.display==“”){//当前可见
this.refs.blah.style.display=“无”;
this.setState({showBlah=false});
}else{//当前不可见
this.refs.blah.style.display=“”;
this.setState({showBlah:true});
}
}
render(){
//使用上面使用的ref值定义的某些元素。
返回(
现在你看到我了。。。
切换我
);
}

通过添加切换功能,除了在某处添加一个按钮来调用该函数之外,我的渲染函数中没有任何更改。正如我已经指出的,该状态值仅用于触发渲染过程。

感谢您的回复,但我想使用react native refs。就像我们在jQuery中使用的那样,通过传递特定文本的id来更改该文本的颜色。我想用它来点击特定的TouchableOpacity,如果我给出状态,那么它会给所有组件提供相同的不透明度。谢谢你的帮助:)好:)谢谢你不明白的答案。将删除此项。br如果我想延迟更改它(不涉及按钮),您不能在处理不透明度更改的地方使用JavaScript中的setTimeout()函数吗?有关如何使用的说明,请参见以下链接:
toggleDisplay() {
  if (this.refs.blah.style.display === "") {  // currently visible
    this.refs.blah.style.display = "none";
    this.setState({showBlah = false});
  } else {  // currently not visible
    this.refs.blah.style.display = "";
    this.setState({showBlah: true});
  }
}

render() {
  // Some element defined with the ref value used above.
  return (<div>
      <div ref="blah">Now you see me...</div>
      <button onClick="this.toggleDisplay">Toggle Me</button>
    </div>);
}