慕容708150
2022-11-03 10:58:42
我懷疑我的onSubmit函數有問題。上述錯誤是我在運行應用程序時遇到的。我試圖更改我的onSubmit函數以將“title”作為有效負載,但這也不起作用協助將不勝感激。addAuctionForm: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;
1 回答

江戶川亂折騰
TA貢獻1851條經驗 獲得超5個贊
您正在使用的庫 ( 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>
添加回答
舉報
0/150
提交
取消