代码之家  ›  专栏  ›  技术社区  ›  Chris

如何通过react和babel从react select cdn导入?

  •  2
  • Chris  · 技术社区  · 7 年前

    我已经按照 React Website 但是我在使用 React-Select Library (尤其是选择组件)。

    我只能使用cdn文件加载依赖项,包括位于 cdnjs

    https://cdnjs.cloudflare.com/ajax/libs/react-select/2.1.2/react-select.js
    

    我的React应用程序出现以下错误:

    ReferenceError: Select is not defined[Learn More]
    

    我的剧本和 here for my codepen

      <html> 
        <head>
          <meta charset="utf-8">
          <script src="https://unpkg.com/react@15.0.0/dist/react-with-addons.min.js"></script>
          <script src="https://cdnjs.cloudflare.com/ajax/libs/redux/3.0.4/redux.min.js"></script>
          <script src="https://cdnjs.cloudflare.com/ajax/libs/react-redux/4.4.5/react-redux.min.js"></script>
          <script src="https://unpkg.com/react-dom@0.14.0/dist/react-dom.min.js"></script>
          <script src="https://cdnjs.cloudflare.com/ajax/libs/react-select/2.1.2/react-select.js"></script>
          <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
          <title>Using React Select CDN</title>
        </head>
        <body>
          <div id="root"></div>
          <script type="text/babel">
    
    
          const options = [
            { value: 'chocolate', label: 'Chocolate' },
            { value: 'strawberry', label: 'Strawberry' },
            { value: 'vanilla', label: 'Vanilla' }
          ];
    
          class App extends React.Component {
            state = {
              selectedOption: null,
            }
            handleChange = (selectedOption) => {
              this.setState({ selectedOption });
              console.log(`Option selected:`, selectedOption);
            }
            render() {
              const { selectedOption } = this.state;
    
              return (
                <div>
                Test Text
                <Select
                  value={selectedOption}
                  onChange={this.handleChange}
                  options={options}
                />
                </div>
              );
            }
          }
    
          ReactDOM.render(<App/>, document.querySelector("#root"))
          </script>
        </body>
      </html>
    

    我还尝试了以下方法,它会引发相同的错误

      <html> 
        <head>
          <meta charset="utf-8">
          <script src="https://unpkg.com/react@15.0.0/dist/react-with-addons.min.js"></script>
          <script src="https://cdnjs.cloudflare.com/ajax/libs/redux/3.0.4/redux.min.js"></script>
          <script src="https://cdnjs.cloudflare.com/ajax/libs/react-redux/4.4.5/react-redux.min.js"></script>
          <script src="https://unpkg.com/react-dom@0.14.0/dist/react-dom.min.js"></script>
    
    
          <script src="https://cdnjs.cloudflare.com/ajax/libs/react-select/2.1.2/react-select.js"></script>
          <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
          <script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js"></script>
          <script src="https://cdnjs.cloudflare.com/ajax/libs/react-select/2.1.2/react-select.js"></script>
    
          <title>Using React Select CDN</title>
        </head>
        <body>
          <div id="root"></div>
    
          <script type="text/babel">
    
          require(['react-select'])
          import Select from 'react-select';
          const options = [
            { value: 'chocolate', label: 'Chocolate' },
            { value: 'strawberry', label: 'Strawberry' },
            { value: 'vanilla', label: 'Vanilla' }
          ];
    
          class App extends React.Component {
            state = {
              selectedOption: null,
            }
            handleChange = (selectedOption) => {
              this.setState({ selectedOption });
              console.log(`Option selected:`, selectedOption);
            }
            render() {
              const { selectedOption } = this.state;
    
              return (
                <div>
                Test Text
                <Select
                  value={selectedOption}
                  onChange={this.handleChange}
                  options={options}
                />
                </div>
              );
            }
          }
    
          ReactDOM.render(<App/>, document.querySelector("#root"))
          </script>
        </body>
      </html>
    

    我如何才能得到反应选择工作?也许

    1 回复  |  直到 7 年前
        1
  •  0
  •   Irfan    7 年前

    它寻找最新的 react-select 您需要添加最新的依赖项-

    Codepan

    <script src="https://unpkg.com/react@16.7.0/umd/react.production.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/emotion@9.2.12/dist/emotion.umd.min.js"></script>
    <script src="https://unpkg.com/react-dom@16.7.0/umd/react-dom.production.min.js"></script>
    <script src="https://unpkg.com/prop-types@15.5.10/prop-types.min.js"></script>
    <script src="https://unpkg.com/react-input-autosize@2.2.1/dist/react-input-autosize.min.js"></script>
    <script src="https://unpkg.com/react-select@2.1.2/dist/react-select.min.js"></script>
    
    <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>