Ich habe eine Komponente ChannelSection.jsx erstellt, die nicht die äußerste Komponente ist, App.jsx wird die äußerste Komponente sein. Meine ChannelSection muss Requisiten von der übergeordneten Komponente erhalten. So fügten die prop Typen unten:Warum kann PropType.func nicht gelesen werden?
ChannelSection.jsx:
import React, {Component} from 'react';
import ChannelForm from './ChannelForm.jsx';
import ChannelList from './ChannelList.jsx';
class ChannelSection extends Component {
render(){
return (
<div>
<ChannelList {...this.props} />
<ChannelForm {...this.props} />
</div>
)
}
}
ChannelSection.propTypes = {
channels: React.PropTypes.array.isRequired,
setChannel: React.PropTypes.func.isRequired,
addChannel: React.PropTypes.func.isRequired
}
export default ChannelSection
Und ich erhalte diesen Fehler in der Konsole, und ich bin nicht sicher, warum, und ich brauche etwas Hilfe in dieser Fehlerbehebung:
Uncaught TypeError: Cannot read property 'func' of undefined
Meine App.jsx Datei:
import React, {Component} from 'react';
import ChannelSection from './channels/ChannelSection.jsx';
class App extends Component {
constructor(props){
super(props);
this.state = {
channels: []
};
}
addChannel(name){
let {channels} = this.state;
channels.push({id: channels.length, name});
this.setState({channels});
// TODO: Send to Server
}
setChannel(activeChannel){
this.setState({activeChannel});
// TODO: Get Channel Messages
}
render(){
return (
<ChannelSection
channels={this.state.channels}
addChannel={this.addChannel.bind(this)}
setChannel={this.setChannel.bind(this)} />
)
}
}
export default App
meine index.js Datei:
import React from 'react';
import ReactDOM from 'react-dom';
import App from './components/App.jsx';
ReactDOM.render(App, document.getElementById('root'));
Titel sagt PropType haben Sie sichergestellt, dass nirgendwo in der App PropType verwenden? Die Snippets, die Sie posten, sehen richtig aus und verwenden richtig PropTypes, aber ist es möglich, dass Sie PropType woanders haben. – kwelch
@kwelch, guten Ruf, in ChannelForm.jsx Ich hatte einige PropTypes, die Kleinbuchstaben waren. Machen Sie weiter und posten Sie Ihre Antwort als Antwort, damit ich es überprüfen und Ihnen für Ihre Hilfe danken kann. – Daniel
Froh, dass geholfen hat. – kwelch