首页 文章

如何通过响应新闻事件来更新图像源

提问于
浏览
0

我有一个touchableOpacity组件包含一些.png图片文件,我想更改其中一个图像源并将change事件绑定到onPress事件 . 我当前将源初始化为getInitialState()中的prop

source: require('someSource.png')

并实施

this.setState({source: require('someOtherSource.png')});

到onPress功能 . 不知何故,图像大小也相应改变,因为我添加了resizeMode:'contains'到图像样式 . 但是第二个图像文件没有加载到视图上 . 图像视图的部分:

<TouchableOpacity style={styles.newUserRegister}
                    onPress={this.doRegister}>
                <Image style={styles.accNewUser} source={this.state.source}/>
</TouchableOpacity>

并在doRegister()函数中:

this.setState({source: require('someOtherSource.png')});

我有三种状态的图像源,所以我认为在doRegister中调用setState函数可能是一个更好的解决方案 .

如果是造型问题,这也是accNewUser的样式

accNewUser:{
    marginTop:5,
    resizeMode: 'contain',
    alignItems: 'center',
},

1 回答

  • 0

    我为你的案子做了这个例子:https://rnplay.org/apps/jePI5Q

    不幸的是RNPlay不允许添加资产,所以我不得不使用带有 uri 引用的外部图像 . 只需用 require(<asset>) 替换这些引用,你就可以了 .

    该示例在 defaultSource (向上箭头)和另一个(向下箭头)之间切换状态 .

相关问题