Ich habe ein Element, eine untergeordnete Komponente mit dem Namen <NormalTextField/>
, aber wie können Sie Methoden aufrufen - _handleFirstName
und _handleLastName
von seiner übergeordneten Komponente <Home/>
? Ich versuche, den Benutzer einen Text eingeben zu lassen, und es würde gesendet, um ein Objekt user
in dem Reducer zu erstellen, der firstName
und lastName
enthält.Wie Methoden in Parent-Komponente von Child-Komponente aufgerufen werden?
In <Home/>
Ich habe folgendes:
_handleFirstName(event){
this.props.actions.updateFirstName(event.target.value)
}
_handleLastName(event){
this.props.actions.updateLastName(event.target.value)
}
render(){
return(
<NormalTextField
hint='Enter First Name'
onChange={this._handleFirstName.bind(this)}
value={this.props.user.firstName}
/>
<NormalTextField
hint='Enter Last Name'
onChange={this._handleLastName.bind(this)}
value={this.props.user.lastName}
/>
Dann in meinem Element <NormalTextField/>
,
import React, { Component } from 'react'
import { TextField } from 'material-ui'
import { orange900 } from 'material-ui/styles/colors'
class TextFieldLabel extends Component {
static propTypes = {
hint: React.PropTypes.string,
onChange: React.PropTypes.func
}
_handle(event){
this.props.onChange(event.target.value)
}
render() {
var pr = this.props
var hint = pr.hint
var value = pr.value
return (
<TextField
hintText={hint}
onChange={this._handle.bind(this)}
value={value}
/>
)
}
}
export default NormalTextField
Aber sobald der Benutzer in einem Text eingibt, erhalte ich folgende Fehlermeldung: Uncaught: TypeError: Cannot read property 'value' of undefined
für _handleFirstName(event)
. Was mache ich falsch? Ist dies der richtige Ansatz und ist es möglich, dass die Child-Komponente die Methoden von Parent aufruft?