Ich benutze React.js für ein Projekt und ich bekomme einige Probleme. Hier ist mein Problem:Uncaught TypeError: this.props.xxx ist keine Funktion in React
Ich habe diese Komponente, die für die Erstellung einer neuen Rezeptur ist:
import React, {Component, PropTypes} from 'react';
import { reduxForm } from 'redux-form';
import {Link} from 'react-router';
import { createRecipe } from '../actions/index';
class NewRecipe extends Component {
static contextTypes = {
router:PropTypes.object
};
onSubmit(props){
this.props.createRecipe(props).then(() => {
this.context.router.push('/yourRecipes');
});
}
render(){
const name = this.props.fields.name;
const description = this.props.fields.description;
const handleSubmit = this.props.handleSubmit;
return(
<form onSubmit={handleSubmit(this.onSubmit.bind(this))}>
<h3>New recipe</h3>
<div>
<label>Name</label>
<input type="text" className="form-control" {...name} />
</div>
<div>
<label>Description</label>
<input type="text" className="form-control" {...description} />
</div>
<button type="submit" className="btn btn-primary btn-primary-spacing">Submit</button>
<Link to="/yourRecipes" className="btn btn-danger btn-primary-spacing">Cancel</Link>
</form>
);
}
}
export default reduxForm({
form: 'NewRecipeForm',
fields: ['name','description']
}, null, { createRecipe })(NewRecipe);
createRecipe Aktion Schöpfer wie diese innerhalb index.js Datei aussieht:
export function createRecipe(props){
const request = axios.post('http://localhost:3001/recipes/new', props);
return {
type: CREATE_RECIPE,
payload: request
};
}
Jedesmal Ich versuche, auf die Senden-Schaltfläche des Formulars zu klicken Ich erhalte diesen Fehler in der Browser-Konsole:
Uncaught TypeError: this.props.createRecipe is not a function
Können wir sehen, wie Sie 'connect' verwenden? – Li357
wollten Sie das importierte 'createRecipe' in Ihrer onSubmit-Funktion verwenden? – Surender
@Surender ja, wenn ich auf den Absenden der Aktion Creator wird nicht ausgelöst, und ich bekomme diesen Fehler – splunk