如何在react-native中按下按钮打开网页视图?

qhhrdooz  于 2023-03-09  发布在  React
关注(0)|答案(2)|浏览(159)

我想在react-native应用中单击按钮时打开网页视图。
我是新的React Native和得到的错误是难以理解的。

const url = 'https://google.com/';

export default class MyWebComponent extends Component {

  renderIcon(){
      console.log("came here")
      return(
        return <WebView source={{ uri: url }} />;
      )
    }

  render() {
        return (
        <View style={styles.container}>
                    <Button
                        onPress={{} => () this._renderIcon()}
                        title= {this.state.Title}
                          />
                     </View>
                );
  }
}

const styles = StyleSheet.create({
    container: {
        flex: 1,
        justifyContent: 'center',
        alignItems: 'center',
        backgroundColor: '#EF5350'
    },
    instructions: {
        textAlign: 'center',
        color: '#ffffff',
        marginBottom: 5
    }
});
fdbelqdn

fdbelqdn1#

您可以添加一个状态,像这样打开webview。

export default class MyWebComponent extends Component {
  state = { shouldOpenWebview: false }

  render() {
    if (this.state.shouldOpenWebview) return <WebView source={{ uri: url }} />

    return (
      <View style={styles.container}>
        <Button
          onPress={() => this.setState({ shouldOpenWebview: true})}
          title= {this.state.Title}
        />
      </View>
    );
  }
}
pw9qyyiw

pw9qyyiw2#

使用标记管理是否显示Webview。
示例:

export default class ScreenTest extends Component {
  state = { showWebview: false };
  render() {
    const { showWebview } = this.state;
    return (
      <View style={{ flex: 1 }}>
        {showWebview ? (
          <WebView style={{ flex: 1 }} source={{ uri }} />
        ) : (
          <TouchableOpacity
            onPress={() => this.setState({ showWebview: true })}
          >
            <Text>Show Webview!</Text>
          </TouchableOpacity>
        )}
      </View>
    );
  }
}

相关问题