React Native: Как добавить скрипт-тег в компонент - PullRequest
0 голосов
/ 02 июля 2018

Я пытаюсь добавить тег внутри компонента для приложения React Native. Ниже мой код, и он, кажется, не работает. Может кто-нибудь сказать, пожалуйста, как решить эту проблему?

import React, {Component} from 'react';
import PropTypes from 'prop-types';
import Dimensions from 'Dimensions';
import {StyleSheet, View, TextInput, Image, Text} from 'react-native';

export default class Chatbot extends Component {
  render() {
    return (
      <View>
        <Text>Testing</Text>
        
		<script type="text/javascript">
		    window.__be = window.__be || {};
		    window.__be.id = "5b3a47b4b30a36000769d821";
		    (function() {
		        var be = document.createElement('script'); be.type = 'text/javascript'; be.async = true;
		        be.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'cdn.botengine.ai/widget/plugin.js';
		        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(be, s);
		    })();
		</script>

      </View>
    );
  }
}

Ответы [ 3 ]

0 голосов
/ 02 июля 2018

Вы не можете выполнить код в зависимости от среды браузера на реагирующем. попробуйте запустить его внутри компонента WebView. https://facebook.github.io/react-native/docs/webview.html

0 голосов
/ 02 июля 2018

Я предполагаю, что код, который вы пишете, не будет работать в браузере. Тег сценария служит для того, чтобы сообщить БРАУЗЕРУ: «Эй, браузер, остановись. У нас здесь есть какой-то javascript. Выполните его», так что вы должны забыть о теге сценария.

0 голосов
/ 02 июля 2018

Вы можете сделать эту логику вместо componentDidMount.

import React, {Component} from 'react';
import PropTypes from 'prop-types';
import Dimensions from 'Dimensions';
import {StyleSheet, View, TextInput, Image, Text} from 'react-native';

export default class Chatbot extends Component {
  componentDidMount() {
    window.__be = window.__be || {};
    window.__be.id = "5b3a47b4b30a36000769d821";
    (function() {
      var be = document.createElement('script'); be.type = 'text/javascript'; be.async = true;
      be.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'cdn.botengine.ai/widget/plugin.js';
      var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(be, s);
    })();
  }
  render() {
    return (
      <View>
        <Text>Testing</Text>
      </View>
    );
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...