问题描述
我的第一个问题是,我们可以在 React Native 中插入 flex 属性吗?
如果是,那么我在下面有这段代码,我试图在其中插入 flex 属性以实现可拖动的底部表,或者您可以说一个模态(如内置的本机反应模态)。
这里是构造器代码>
constructor(){
super();
this.state = {
pan: new Animated.Value(40),panResponder: PanResponder.create({
onMoveShouldSetPanResponder: () => true,onPanResponderGrant: () => {
console.log('Responder Granted!!');
this.state.pan.setoffset(this.state.pan._value);
},onPanResponderMove: (_,gesture) => {
this.state.pan.setValue(-gesture.dy);
console.log(this.state.pan._value);
},onPanResponderRelease: (_,gesture) => {
this.state.pan.flattenOffset();
Animated.timing(this.state.pan,{
duration: 500,tovalue: ((gesture.dy < -100) ? (deviceHeight - this.state.modalMinimumHeight) : ((gesture.dy > 100) ? this.state.modalMinimumHeight : ((this.state.discoverModalVisible) ? (deviceHeight - this.state.modalMinimumHeight) : this.state.modalMinimumHeight))),useNativeDriver: false,}).start();
console.log('Responder Released!!');
console.log(gesture.dy,this.state.pan._value);
},}),}
}
这是我的类的渲染函数>
render() {
return(
<View style={{flex: 1,backgroundColor: 'lightblue'}}>
<Animated.View
style={{
position: 'absolute',bottom: 50,left: 0,right: 0,backgroundColor: 'white',// backgroundColor: this.state.pan.interpolate({
// inputRange: [40,deviceHeight - 40],// outputRange: ['white','black'],// }),flex: this.state.pan.interpolate({
inputRange: [0,40,outputRange: [0,0.1,0.9],justifyContent: 'center',alignItems: 'center',}}
{...this.state.panResponder.panHandlers}
>
<Text style={{
flex: 1,}}>
discover
</Text>
</Animated.View>
</View>
)
}
在上面的代码中,我可以插入组件 Animated.View 的背景颜色的值,但是在尝试插入 flex 属性时,我收到如下错误。
Invariant Violation: [7,"RCTView",{"flex":""}] 不能用作本地方法参数
请给出正确的解决方案。 :)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)