我正在开发一个应用本地的应用程序,我遇到了一个问题:
我希望当我点击按钮(或直接按下按钮的视图)时,屏幕上会显示Webview并打开直接传入参数的链接。 但没有任何反应。
这是我的代码:
return (
<ScrollView style={[style.case1]} refreshControl={<RefreshControl refreshing={this.state.refreshing} onRefresh={this.handleRefresh} />} >
{
this.state.orders.map(function (order) {
let a = _this.getPosts(order);
let Final = _this.splitString(a.message," ");
return (
<View style={[style.case2]} key={a.message} >
<Couleur couleur={Final[4]} />
<Text style={[style.Nom]} >Nom : {Final[1]}</Text>
<Text style={[style.Nom]} >Numéro de build : {Final[2]}</Text>
<Button onPress={<Web url={Final[3]} />} title="Click"/>
</View>
);
})}
</ScrollView>
);
WebView类:
import React, {Component} from "react";
import {WebView} from "react-native";
export default class Web extends Component {
constructor(props){
super(props);
}
render() {
let uri = this.props.url;
return(
<WebView
ref={(ref) => {this.webview = ref;}}
source={{uri}}
style={{marginTop:20}}
/>
)
}
}
我收到了这个错误:
如果有人帮助我,我会很高兴的! :)&#34;对象不是一个函数(评估&#39; this.props.onPress(e)&#39;)
答案 0 :(得分:1)
onPress动作需要是一个能够做某事的功能。现在,您正在将操作设置为组件,并且反应不知道该怎么做。
如果没有某种导航库控制您的视图,您可以执行类似操作,让onPress设置一些状态来控制渲染函数的一部分,该部分显示现有页面或新的“Web”组件。
所以让onPress像:
onPress={e => this.setState({showWebPart:true})}
然后在你当前的渲染功能中你可以有一个三元组:
{this.state.showWebPart ? <Web url={Final[3]} /> : ..current render stuff}