我有这样的网址数组:
[ "https://hey.com",
"https://yes.com",
"https://wow.com",
/..
]
我有相同的图标,但是多次。我希望每个按钮在被按下时都重定向到其特定的网址。
我尝试了这段代码,但是它不起作用:
onPress=(arrayOfURL)=>{
for (i in arrayOfURL)
{
this.setState({ browserOpen: true });
WebBrowser.openBrowserAsync(JSON.stringify(arrayOfURL[i]))
.then(() => {
WebBrowser.dismissBrowser();
this.setState({ browserOpen: false });
});
}
}
图标的代码:
<View >
<Icon
name='sc-telegram'
type='evilicon'
color='black'
onPress={this.onPress} />
</View>
答案 0 :(得分:0)
快速帮助!尚未测试代码,但这是我要做的。
const urls = ["https://hey.com", "https://yes.com", "https://wow.com"];
urls.map(value => {
return <View>
<Icon
name='sc-telegram'
type='evilicon'
color='black'
onPress={() => this.openSpecificUrl(value)} />
</View>
})
onSpecificUrl = (specificUrl) => {
//you will get specific url from an array. You can perform your opening logic here
}
答案 1 :(得分:0)
因此,看来您正在执行逻辑错误。您不需要for循环,只需通过每个图标传递onPress()方法并为其传递一个参数,该参数指定您要打开的链接:
<Icon
name='sc-telegram'
type='evilicon'
color='black'
onPress={() => this.onPress(arrayOfURL[0])} />
然后简单地:
onPress = (url) => {
[...]
WebBrowser.openBrowserAsync(url).then(...)
[...]
}
如果您的问题是如何动态分配指向图标的链接...那只是另一个问题。希望这次我不会误解一切,希望可以帮助您解决疑问。