将本机设置样式React为状态

laik7k3q  于 2023-01-27  发布在  React
关注(0)|答案(1)|浏览(141)

我想使用style1backgroundColor作为状态,并在函数change()中更改它。
如何访问style1
我的观点是从另一个函数调用函数change,使按钮的颜色变为黄色,然后在一段时间后再次变为蓝色。

export default class App extends Component{ 
  constructor (props){
    super(props);
    this.state = {
      //style1.backgroundColour: blue  //? Can't 
    }
    this.change=this.change.bind(this)
  }

  change() {
    this.setState({ style1.backgroundColour: yellow }) //?
  }

  render(){
    return (
      <View style={styles.style1} > </View>

    );
  }
}

const styles = StyleSheet.create({

  style1:{
    padding: 5,
    height: 80,
    width: 80,  
    borderRadius:160,    
    backgroundColor:'blue',
  },

});
8ehkhllq

8ehkhllq1#

更新:这个问题和我的答案都是基于类组件的,但是函数组件和钩子是目前使用React很长一段时间的方式。
首先,您应该为backgroundColor创建一个状态:

const [backgroundColor, setBackgroundColor] = useState('blue');

然后在函数中更改它的值

setBackgroundColor('yellow');

最后,把它用在风格 prop 上:

style={[styles.style1, {backgroundColor}}
  • 旧答案,使用类组件 *

你可以给予样式属性一个数组,这样你就可以从其他的源中添加任何其他的样式。
首先,您应该为backgroundColor状态声明一个默认值:

this.state = {
  backgroundColor: 'blue',
};

然后在函数中将其状态设置为普通字符串状态:

this.setState({backgroundColor: 'yellow'});

最后,把它用在风格 prop 上:

style={[styles.style1, {backgroundColor: this.state.backgroundColor}]}

相关问题