Javascript 谷歌翻译不起作用

Javascript 谷歌翻译不起作用,javascript,reactjs,google-translate,Javascript,Reactjs,Google Translate,在React中,JS试图实现google translate,并在我的脚本文件中包含了translate组件 Googletranslate.js: import React, { Component } from 'react'; class GoogleTranslate extends Component { googleTranslateElementInit () { //alert("test2") /* eslint-disable no-

在React中,JS试图实现google translate,并在我的脚本文件中包含了translate组件

Googletranslate.js

import React, { Component } from 'react';

class GoogleTranslate extends Component {
    googleTranslateElementInit () {
        //alert("test2")
        /* eslint-disable no-new */
        new window.google.translate.TranslateElement({pageLanguage: 'pt', layout: window.google.translate.TranslateElement.FloatPosition.TOP_LEFT}, 'google_translate_element')
     }

    componentDidMount() {
        // alert("test")

        var addScript = document.createElement('script');
        addScript.setAttribute('src', '//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit');        
        document.body.appendChild(addScript);  
        window.googleTranslateElementInit = this.googleTranslateElementInit;
    }

    render() {
        return (
            // <script type='text/javascript' src='//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit' />
            <div id="google_translate_element"></div>
          );
     }
}

export default GoogleTranslate;
import GoogleTranslate from '../Applicant/GoogleTranslate'; 
我正在使用Adminlogin.js文件中包含的这个组件

并且在我的文件中包含了这个组件,当我登录到这个网站和注销后,当我导航到主页时,有两个语言栏


非常感谢您的帮助。

因为在这个.googleTranslateElementInit上下文中找不到正确的答案

您可以在构造函数绑定函数中:

constructor(props) {
    super(props);
    this.googleTranslateElementInit = this.googleTranslateElementInit.bind(this);
}
或 在类中使用arrow函数bind

googleTranslateElementInit = () => {
   ...
}

在功能组件中尝试此功能很好

 const SamplePage = () => {

 const googleTranslateElementInit = () => {
   new window.google.translate.TranslateElement({ pageLanguage: 'en', layout: window.google.translate.TranslateElement.FloatPosition.TOP_LEFT }, 'google_translate_element')
  }
  
  useEffect(() => {
    var addScript = document.createElement('script');
    addScript.setAttribute('src', '//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit');
    document.body.appendChild(addScript);
    window.googleTranslateElementInit = googleTranslateElementInit;
  }, [])

  return (
    <div>
      <h2 className="title gx-mb-4"><IntlMessages id="sidebar.samplePage"/></h2>
      <div id="google_translate_element"></div>
      <div className="gx-d-flex justify-content-center">
        <h4>Start building your app. Happy Coding!</h4>
      </div>

    </div>
  );
};

export default SamplePage
const SamplePage=()=>{
const googleTranslateElementInit=()=>{
新建window.google.translate.TranslateElement({pageLanguage:'en',布局:window.google.translate.TranslateElement.FloatPosition.TOP_LEFT},'google_translate_element')
}
useffect(()=>{
var addScript=document.createElement('script');
addScript.setAttribute('src','//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit');
document.body.appendChild(addScript);
window.googleTranslateElementInit=googleTranslateElementInit;
}, [])
返回(
开始构建你的应用程序。快乐编码!
);
};
导出默认样本页