how to to insert TradingView widget into react js which is in script tag link: https://www.tradingview.com/widget/market-overview/

两盒软妹~` 提交于 2019-12-24 00:56:42

问题


export default class extends Component {
    render() {
        return (
            <div>
                {
                        /***
                         * enter the code here
                          */
                }
            </div>
        )
    }
}

回答1:


export default  class Tabsshow extends React.PureComponent {
constructor(props) {
    super(props);
    this._ref = React.createRef();
}
render() {
    return(
    <div class="tradingview-widget-container" ref={this._ref}>
        <div class="tradingview-widget-container__widget"></div>

    </div>
    );
}
componentDidMount() {
    const script = document.createElement('script');
    script.src = 'https://s3.tradingview.com/external-embedding/embed-widget-market-overview.js'
    script.async = true;
    script.innerHTML = /* JSON-ENCODED SETTINGS STRING FROM EMBED CODE */
    this._ref.current.appendChild(script);
}
}



回答2:


This should work in your case

class App extends  React.Component {

    componentDidMount() {
        const script = document.createElement('script');
        script.src = 'https://s3.tradingview.com/external-embedding/embed-widget-market-overview.js'
        script.async = true;
        script.innerHTML = JSON.stringify({ /* JSON object */})
        document.getElementById("myContainer").appendChild(script);
    }

    render() {
        return(
      <div id="myContainer">
        <div className="tradingview-widget-container">
           <div className="tradingview-widget-container__widget">
            </div>
        </div>
     </div>
        );
    }
    }



回答3:


I suggest you to use React Helmet

Below is a given demo:

import React from "react";
import {Helmet} from "react-helmet";

class Application extends React.Component {
  render () {
    return (
        <div className="application">
            <Helmet>
                <meta charSet="utf-8" />
                <title>My Title</title>
                <link rel="canonical" href="http://example.com/example" />
            </Helmet>
            ...
        </div>
    );
  }
};

You can also add your script in your code. Let me know if it helps you.

EDITED

In your case, you can do the following:

import React from "react";
import {Helmet} from "react-helmet";
export default class MyPro extends Component {
    render() {
        return (
            <Helmet>
               <script type="text/javascript" src="https://s3.tradingview.com/external-embedding/embed-widget-market-overview.js" async>
               {`
                {
                    "showChart": true,
                    "locale": "en",
                    "largeChartUrl": "",
                    "width": "400",
                    "height": "600",
                    "plotLineColorGrowing": "rgba(60, 188, 152, 1)",
                    "plotLineColorFalling": "rgba(255, 74, 104, 1)",
                    "gridLineColor": "rgba(233, 233, 234, 1)",
                    "scaleFontColor": "rgba(214, 216, 224, 1)",
                    "belowLineFillColorGrowing": "rgba(60, 188, 152, 0.05)",
                    "belowLineFillColorFalling": "rgba(255, 74, 104, 0.05)",
                    "symbolActiveColor": "rgba(242, 250, 254, 1)",
                    "tabs": [
                        {
                        "title": "Indices",
                        "symbols": [
                            {
                            "s": "INDEX:SPX",
                            "d": "S&P 500"
                            },
                            {
                            "s": "INDEX:IUXX",
                            "d": "Nasdaq 100"
                            },
                            {
                            "s": "INDEX:DOWI",
                            "d": "Dow 30"
                            },
                            {
                            "s": "INDEX:NKY",
                            "d": "Nikkei 225"
                            },
                            {
                            "s": "INDEX:DAX",
                            "d": "DAX Index"
                            },
                            {
                            "s": "OANDA:UK100GBP",
                            "d": "FTSE 100"
                            }
                        ],
                        "originalTitle": "Indices"
                        },
                        {
                        "title": "Commodities",
                        "symbols": [
                            {
                            "s": "CME_MINI:ES1!",
                            "d": "E-Mini S&P"
                            },
                            {
                            "s": "CME:E61!",
                            "d": "Euro"
                            },
                            {
                            "s": "COMEX:GC1!",
                            "d": "Gold"
                            },
                            {
                            "s": "NYMEX:CL1!",
                            "d": "Crude Oil"
                            },
                            {
                            "s": "NYMEX:NG1!",
                            "d": "Natural Gas"
                            },
                            {
                            "s": "CBOT:ZC1!",
                            "d": "Corn"
                            }
                        ],
                        "originalTitle": "Commodities"
                        },
                        {
                        "title": "Bonds",
                        "symbols": [
                            {
                            "s": "CME:GE1!",
                            "d": "Eurodollar"
                            },
                            {
                            "s": "CBOT:ZB1!",
                            "d": "T-Bond"
                            },
                            {
                            "s": "CBOT:UD1!",
                            "d": "Ultra T-Bond"
                            },
                            {
                            "s": "EUREX:GG1!",
                            "d": "Euro Bund"
                            },
                            {
                            "s": "EUREX:II1!",
                            "d": "Euro BTP"
                            },
                            {
                            "s": "EUREX:HR1!",
                            "d": "Euro BOBL"
                            }
                        ],
                        "originalTitle": "Bonds"
                        },
                        {
                        "title": "Forex",
                        "symbols": [
                            {
                            "s": "FX:EURUSD"
                            },
                            {
                            "s": "FX:GBPUSD"
                            },
                            {
                            "s": "FX:USDJPY"
                            },
                            {
                            "s": "FX:USDCHF"
                            },
                            {
                            "s": "FX:AUDUSD"
                            },
                            {
                            "s": "FX:USDCAD"
                            }
                        ],
                        "originalTitle": "Forex"
                        }
                    ]
                    }
               `}
                </script> 
            </Helmet>
        )
    }
}


来源:https://stackoverflow.com/questions/53845011/how-to-to-insert-tradingview-widget-into-react-js-which-is-in-script-tag-link-h

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!