Bir kullanıcı bir form gönderdiğinde form değerlerini yakalamak istiyorum.Yanıt Gönderme/Yeniden Gönderme formunda gönder
var CommentForm = React.createClass({
handleAuthorChange: function(e) {
this.setState({author: e.target.value});
},
handleTextChange: function(e) {
this.setState({text: e.target.value});
},
handleSubmit: function(e) {
e.preventDefault();
var author = this.state.author.trim();
var text = this.state.text.trim();
if (!text || !author) {
return;
}
render: function() {
return (
<form className="commentForm" onSubmit={this.handleSubmit}>
Bu stil girişi başına bir taşıma fonksiyonu aracılığıyla duruma tüm değişiklikleri iter: öğretici gösterileri bu tepki. Eğer Redux'la dolu olsaydım, karışıma pek çok şey gibi görünen, harekata eylemler ve eylem yaratıcıları ekleyeceğime inanıyorum.
handleSubmit
numaralı argümana yapılan bir olaydır.
Çalışmak çok daha kolay görünen aşağıdaki React/Redux başlangıç kitine rastladım. Formun onSubmit
işleyicisi için işleyici neden
@connect(
() => ({}),
{initialize})
export default class Survey extends Component {
...
handleSubmit = (data) => {
window.alert('Data submitted! ' + JSON.stringify(data));
this.props.initialize('survey', {});
}
render()
return (<SurveyForm onSubmit={this.handleSubmit}/>)
...
class SurveyForm extends Component {
static propTypes = {
handleSubmit: PropTypes.func.isRequired,
}
render() {
const { handleSubmit } = this.props;
return (
<div>
<form className="form-horizontal" onSubmit={handleSubmit}>
...
}
}
Ne belirsiz olduğum: Akıllı bir/konteyner bileşeni ve dilsiz/sunumsal bileşen kombinasyonunu kullanır Facebook öğretici için argüman için bir olay alarak, ancak başlangıç kitinin onSubmit
işleyicisinin form verilerini neden aldığını ... Başlangıç seti'den faydalanıyor 10 paket ancak doğrudan bu işleyicinin nasıl davranacağını nasıl etkilediğini görmüyorum.
Doğru olduğuna inanıyorum, çünkü 'handleSubmit' bir prop olarak aktarılmış gibi görünüyor: render() return ( ) 'Başka bir şey mi demek istediniz? –
Kodda, SurveyForm hiçbir zaman 'this.props.onSubmit' işlevini çağırmaz ancak' this.props.handleSubmit' işlevini çağırır. İşleyiciniz 'onSubmit' propine bağlanıyor, yani SurveyForm'la doğrudan hiçbir zaman çağrılmadığı anlamına geliyor. ReduxForm kodunda 'this.props.onSubmit' öğesini çağırarak görebilirsiniz. Bu oldukça zor, çünkü isimler oldukça benzer, ama özünde SurveyForm 'this.props.handleSubmit' (reduxForm tarafından sağlanan) 'i çağırır, bu da iadelerde' this.props.onSubmit' (işleyiciniz) olarak adlandırılır. – whitep4nther