http://codepen.io/JessieZhou/pen/VPgMdP 、これはCodePenでReactを使用したデモですが、ブラウザで「Uncaught ReferenceError:Component」というエラーが表示されます。が定義されていません」。ただし、最初の行に「import {Component} from'react '」という行を挿入すると、エラーは「Uncaught ReferenceError:require isnotdefined」になります。'クラスの使用法は可能ですか? 'この問題を引き起こしますか?
これが私のコードです:
//import {Component} from 'react'
class MyInput extends Component{
constructor(props){
super(props);
this.handleChange = this.handleChange.bind(this);
}
handleChange(e){
this.props.update(e.target.value);
}
render(){
return <input onChange={this.handleChange} type="text"/>
}
}
ReactDOM.render(MyInput, document.getElementById('myinput'));
CodePenのJavaScript設定は次のとおりです。 codepenのJavaScript設定
Reason is ComponentはReactの一部であり、React.Componentを使用する必要があることにアクセスするには、Componentを直接使用する場合は、最初に次のようにreact
からインポートします。
import {Component} from 'react';
これを使って:
class MyInput extends React.Component{
constructor(props){
super(props);
this.handleChange = this.handleChange.bind(this);
}
handleChange(e){
console.log('e', e.target.vaule);
}
render(){
return <input onChange={this.handleChange} type="text"/>
}
}
ReactDOM.render(<MyInput/>, document.getElementById('myinput'));
チェック codepen
きがついた process.env.NODE_ENV
はReactDOM
16.2jsファイルで未定義ですQuick-からCDNをインポートする場合add。
解決策は、unpkg.comの開発reactモジュールとReactDOMモジュールを使用することです。
// unpkg.com/react/umd/react.development.js
// unpkg.com/react-dom/umd/react-dom.development.js
React 16.2: CodePen で動作する例があります
コンポーネントはreactのサブクラスです。したがって、インポートするか、React.Component
を使用します。レンダリング中は、jsxを使用する必要がありますMyInput
は機能しません。 <MyInput/>
は機能します
class MyInput extends React.Component{
constructor(props){
super(props);
this.handleChange = this.handleChange.bind(this);
}
handleChange(e){
this.props.update(e.target.value);
}
render(){
return <input onChange={this.handleChange} type="text"/>
}
}
ReactDOM.render(<MyInput/>, document.getElementById('myinput'));
できるよ class MyInput extends React.Component
または Webpackbin に切り替えます
Component
だけでなく、React.Component
を拡張する必要があります。
そして、MyInput
の代わりに<MyInput />
をレンダリングする必要があります。
代わりにこれを試してください
class MyInput extends React.Component{
constructor(props){
super(props);
this.handleChange = this.handleChange.bind(this);
}
handleChange(e){
this.props.update(e.target.value);
}
render(){
return <input onChange={this.handleChange} type="text"/>
}
}
ReactDOM.render(<MyInput />, document.getElementById('myinput'));
インポートを使用する代わりに、非構造化割り当てを使用してReact.Componentを取得します。 js設定を介してcodepenにreactを追加した後、スクリプトを実行してReactをグローバルスコープ、ウィンドウで使用できるようにします。
const {Component} = React;
class MyInput extends Component{
//Component code
}