मुझे संदेह है कि मुझे अपने ऑन सबमिट फ़ंक्शन में समस्या हो रही है। जब मैं एप्लिकेशन चलाता हूं तो ऊपर बताई गई त्रुटि मुझे मिलती है।

मैंने "शीर्षक" को पेलोड के रूप में लेने के लिए अपने ऑन सबमिट फ़ंक्शन को बदलने की कोशिश की है, लेकिन वह भी काम नहीं किया

सहायता की अत्यधिक सराहना की जाएगी।

ऐडऑक्शनफॉर्म:

import React, {Component} from 'react'
import { TextInput, Button } from 'react-native-paper'
import { View } from 'react-native'
import { connect} from 'react-redux'
import { Formik } from 'formik'

import { addAuction} from '../../actions/index'


function mapDispatchToProps(dispatch) {
    return {
        addAuction: auction => dispatch(addAuction(auction))
    }
}

class ConnectedForm extends Component {
    constructor(props) {
        super(props)
        this.state = {
            title: ''
        }
        
    }
    
    render() {
        return (
            <Formik
                onSubmit={() => addAuction(auction)}
            >
                {({ handleChange, handleSubmit, values}) => (
                    <View>
                        <TextInput
                        onChangeText={handleChange('title')}
                        value={auction.title}
                        />
                        <Button onPress={handleSubmit} title="SUBMIT"/>
                    </View>     
                )}
            </Formik>
        );
    }
}

const Form = connect(null, mapDispatchToProps)(ConnectedForm)

export default Form

कार्य:

import { ADD_AUCTION } from '../constants/action-types'

export function addAuction(payload) {
    return { type: 'ADD_AUCTION', payload}
}

कम करने वाला:

import {ADD_AUCTION} from '../constants/action-types';

const initialState = {
    auctions: []
}

function rootReducer(state = initialState, action) {

    if (action.type === ADD_AUCTION) {
        return Object.assign({}, state, {
            auctions: state.auctions.concat(action.payload)
        })
    }
    return state
}

export default rootReducer;
0
sheppard 6 जुलाई 2020, 05:06

1 उत्तर

सबसे बढ़िया उत्तर

आप जिस lib का उपयोग कर रहे हैं (react-native-paper) और Formik सीधे संगत नहीं हैं। आप सीधे handle* प्रॉप्स का उपयोग नहीं कर पाएंगे।

आपकी सबसे अच्छी शर्त है कि आप सीधे setFieldValue और submitForm का उपयोग करें:

            <Formik
                onSubmit={() => addAuction(auction)}
            >
                {({ setFieldValue, submitForm, values}) => (
                    <View>
                        <TextInput
                        onChangeText={v => setFieldValue('title', v)}
                        value={auction.title}
                        />
                        <Button onPress={() => submitForm()} title="SUBMIT"/>
                    </View>     
                )}
            </Formik>
1
Fábio Batista 6 जुलाई 2020, 08:24