使用ref更改组件背景-React Native

时间:2018-10-15 11:30:39

标签: reactjs react-native

我刚开始学习React Native(从android背景开始)。我想更改View的背景颜色。我需要在不使用状态/属性的情况下执行此操作,因为我不想再次渲染它。

我已引用该视图,并能够使用另一个按钮的onPress()访问它

如何更改视图的背景?

2 个答案:

答案 0 :(得分:1)

设置参考:

ref={component => this.myref = component}

并使用setNativeProps设置背景

this.myref.setNativeProps({
    style:{backgroundColor: '#3fba29'}
});

希望这对某人有帮助:)

答案 1 :(得分:0)

在使用之前,请尝试使用 setState 解决您的问题。

https://reactnative.dev/docs/direct-manipulation

单值很容易

ChangeBackground(){
 this.setState({
  backgroundColor:'blue'
 )}
}
render() {
 return (  
<View onPress={()=>this.ChangeBackground()}style={{backgroundColor:'red'}}>
  ....
 </View>

在数组数据中,您必须使用索引值。借助 index 或 id 更新背景颜色

像这样,

const original = this.state.array;
const single_array = this.state.array.find(
    x => x.id === id,
);
single_array.backgroundColor = 'blue';
original[index] = single_array;
this.setState({
    array: original,
});