2017-08-10 12 views
0

のWebViewを表示しませんネイティブ反応し、私は問題に直面している:は私がアプリを開発してい

私が欲しいという私が直接ビューをボタンをクリック(またはときボタンがどこにあるか)、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}} 
      /> 
     ) 
    } 
} 

、私はこのエラーを得た:

「オブジェクトは関数ではありませんが(「これを評価します.props.onPress(e) ')

誰かが私を助けてくれたらとてもうれしいです! :)

+0

あなたはこの 'たonPress = {()=>リターンのように変更しようとしています} '? –

+0

私はあなたのソリューションを入力するときにエラーが発生しましたが、私は '返品'を削除すると、私は今何もエラーがありません。 –

+0

しかし、私はまだWebViewを表示していません。助けてくれてありがとう –

答えて

1

onPressアクションは何かを行う関数である必要があります。今、あなたはアクションをコンポーネントに設定しており、反応はそれをどうしたらいいのかわかりません。

あなたのビューを制御する何らかの種類のナビゲーションライブラリがなければ、onPressに既存のページまたは新しい 'Web'コンポーネントを示すレンダリング機能の一部を制御する状態を設定することができます。

だから、同じようたonPress作る:あなたのような三元を持つことができます次に、あなたの現在の関数をレンダリングする onPress={e => this.setState({showWebPart:true})}

{this.state.showWebPart ? <Web url={Final[3]} /> : ..current render stuff} 
関連する問題