私はReact jsに非常に新しく、ユーザーがテキスト入力にテキストを入力すると非常に簡単な操作をしようとしていますその上のpタグは、ユーザーが入力しているときに変更する必要があります。ここに関連するコードです:「../style/base.scss'からthis.propsは定義されていないと思われますが、私は理由を理解できません
index.js
import { render } from 'react-dom'
import App from './components/App'
var Name = React.createClass({
getInitialState: function() {
return {name: ''}
},
changeName: function(event) {
this.setState({
name: event.target.value
});
},
render: function() {
return (
<div>
<p>Your name is: {this.state.name}</p>
<App setName={this.changeName} />
</div>
)
}
});
render((<Name />), document.getElementById('content'));
App.js 輸入スタイルは、
export default function() {
return (
<div>
<input type="text" placeholder="Enter text!" className="fancy" onChange={this.props.setName} />
</div>
);
}
これはうまくいくと思っていましたが、何もページに表示されません。ブラウザでコンソールを確認すると、「キャッチされていないタイプのエラー:「未定義の」のプロパティ 'props'を読み取ることができません。これは、 "this"オブジェクトが定義されていないことを意味する必要がありますが、私は理由理由を考えることができません。私はes6のクラス構文を使わなかったので、 "これ"はうまくいくと思った。誰かが何が起こっているか教えてもらえますか?これを見て喜んで誰でも前にありがとうございます。
どうもありがとうを参照します!私は実際それを知らなかったが、App.jsの小道具オブジェクトを渡すことをどうお勧めしますか?私はindex.jsからそれをやらなければならないかもしれないので、私はここでばかげているかもしれませんが、何ができますか?おかげでたくさん! – ParadoxicalEnigma
あなたはすでにAppコンポーネントに 'setName'プロパティを渡しています:' '唯一の問題は、App.js内の機能コンポーネントの空のパラメーターリスト。すでに渡している小道具を保持するパラメータを追加する必要があります。 –
John
ああ、うわー...ええ、ええ、あなたは正しかった、私はそれを見ていないと信じられない。ありがとう、たくさんの男。 – ParadoxicalEnigma