में नक्शा ToDispatchToProps() के लिए तर्क है, मैं एक जावास्क्रिप्ट/रेडक्स/प्रतिक्रिया शुरुआती रेडक्स, प्रतिक्रिया-रेडक्स, & प्रतिक्रिया के साथ एक छोटा सा अनुप्रयोग बना रहा हूं। कुछ कारणों से कनेक्ट करने के साथ मैपडिस्चटोप्रॉप फ़ंक्शन का उपयोग करते समय (प्रतिक्रिया-रेडक्स बाध्यकारी) मुझे एक टाइपरर प्राप्त होता है जो इंगित करता है कि प्रेषण प्रोप निष्पादित करने का प्रयास करते समय प्रेषण एक कार्य नहीं है। जब मैं एक प्रोप के रूप में प्रेषण को कॉल करता हूं (प्रदान किए गए कोड में setAddr फ़ंक्शन देखें) यह काम करता है।'प्रेषण' एक फ़ंक्शन नहीं है जब Redux
मुझे यह जानकर उत्सुकता है कि यह क्यों है, उदाहरण के लिए रेडक्स डॉक्स में TODO ऐप नक्शा डिस्प्चटॉपप्रॉप विधि उसी तरह से सेटअप है। जब मैं फ़ंक्शन के अंदर console.log (प्रेषण) करता हूं तो यह कहता है कि प्रेषण प्रकार वस्तु है। मैं इस तरह प्रेषण का उपयोग करना जारी रख सकता हूं लेकिन मैं बेहतर महसूस कर रहा हूं कि यह लालसा के साथ आगे बढ़ने से पहले क्यों हो रहा है। मैं संकलन करने के लिए बेबेल-लोडर के साथ वेबपैक का उपयोग कर रहा हूं।
मेरे कोड:
import React, { PropTypes, Component } from 'react';
import { connect } from 'react-redux';
import { setAddresses } from '../actions.js';
import GeoCode from './geoCode.js';
import FlatButton from 'material-ui/lib/flat-button';
const Start = React.createClass({
propTypes: {
onSubmit: PropTypes.func.isRequired
},
setAddr: function(){
this.props.dispatch(
setAddresses({
pickup: this.refs.pickup.state.address,
dropoff: this.refs.dropoff.state.address
})
)
},
render: function() {
return (
<div>
<div className="row">
<div className="col-xs-6">
<GeoCode ref='pickup' />
</div>
<div className="col-xs-6">
<GeoCode ref='dropoff' />
</div>
</div>
<div className="row">
<div className="col-xs-6">
<FlatButton
label='Does Not Work'
onClick={this.props.onSubmit({
pickup: this.refs.pickup.state.address,
dropoff: this.refs.dropoff.state.address
})}
/>
</div>
<div className="col-xs-6">
<FlatButton
label='Works'
onClick={this.setAddr}
/>
</div>
</div>
</div>
);
}
})
const mapDispatchToProps = (dispatch) => {
return {
onSubmit: (data) => {
dispatch(setAddresses(data))
}
}
}
const StartContainer = connect(mapDispatchToProps)(Start)
export default StartContainer
चीयर्स।
क्या इस विधि का उपयोग करना अनिवार्य है? यह विधि सिर्फ राज्य को पकड़ती है अगर हमें इस विधि की आवश्यकता नहीं है? –
@MuneemHabib इस विधि को आपूर्ति न करने के लिए इनोस्टिया के उत्तर को देखें, यदि आपको इसकी आवश्यकता नहीं है – Brandon