React native 反应本机动态样式,而不重新渲染整个组件
下面的条件样式是否仍适用于react nativeReact native 反应本机动态样式,而不重新渲染整个组件,react-native,stylesheet,React Native,Stylesheet,下面的条件样式是否仍适用于react native style={[styles.base, this.state.active && styles.background]} 安装组件时,激活状态设置为false 屏幕上有一个按钮,用于将活动状态更改为true。然后,我希望显示背景样式。但情况并非如此,除非页面重新加载 有什么想法吗 谢谢听起来您可能对使用react native的动画模块感兴趣。通过使用动画模块,可以使样式发生更改或设置动画。您还可以使用LayoutImati
style={[styles.base, this.state.active && styles.background]}
安装组件时,激活状态设置为false
屏幕上有一个按钮,用于将活动状态更改为true。然后,我希望显示背景样式。但情况并非如此,除非页面重新加载
有什么想法吗
谢谢听起来您可能对使用react native的动画模块感兴趣。通过使用动画模块,可以使样式发生更改或设置动画。您还可以使用LayoutImation。你应该阅读和 您可以从使用LayoutImation开始,看看它是否满足您的需要。设置起来很快 下面是一个例子:
import React, { Component} from 'react';
import { View, LayoutAnimation, UIManager, Platform } from 'react-native';
class MyComponent extends Component {
constructor(props) {
super(props);
if (Platform.OS === 'android') {
UIManager.setLayoutAnimationEnabledExperimental(true);
}
componentWillUpdate() {
LayoutAnimation.spring() // automatimagically animates style changes
}
render() {
<View style={[styles.base, this.state.active && styles.background]}>
</View>
}
}
import React,{Component}来自'React';
从“react native”导入{视图、布局动画、UIManager、平台};
类MyComponent扩展组件{
建造师(道具){
超级(道具);
如果(Platform.OS==='android'){
UIManager.SetLayoutImactionEnabledExperimental(true);
}
componentWillUpdate(){
layoutimation.spring()//自动神奇地设置样式更改的动画
}
render(){
}
}
谢谢。看起来是我需要的。我会尝试一下,让你知道。效果很好。谢谢!刚刚通过在react-native的导入中添加平台编辑了你的答案。哦!我真不敢相信我错过了!:)@sbkl我很高兴它对你有用!如果它对你有帮助,你介意投票并接受答案吗?如果你使用LayoutAnimation,你应该试试动画模块。它需要更多的时间来设置,而且有点复杂,但是它给你更多的控制,让你可以设置样式的动画。