Я создаю приложение с динамическими формами (redux-form). Я бы хотел, чтобы пользователь нажал кнопку отправки, чтобы распечатать значения. Обратите внимание, что моя кнопка отправки помещается в мой заголовок приложения (вне формы). Чтобы достичь этого, я следую за этим tutorial из Redux-формы. Когда я нажимаю кнопку «Сохранить», я получил эту ошибку в консоли: (0 , _reduxForm.submit) is not a function(…)
.Редюкс-форму вызова представить внешний компонент формы
Мой код:
Добавить компонент
import React from 'react'
import {connect} from 'react-redux'
import {submit} from 'redux-form'
const RemoteSubmitButton = ({dispatch}) =>
// How to get 'form' prop here ?
<button type="submit" onClick={() => dispatch(submit()) }>Save</button>
export default connect()(RemoteSubmitButton)
Основной компонент
// Import librairies
import Submit from 'submitBtn'
export default class extends Component {
...
render(){
return (
// html code
<Submit form="newuser" /> // form prop gonna be dynamic
)
}
}
submit.js
import {SubmissionError} from 'redux-form'
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms))
function submit(values) {
return sleep(1000) // simulate server latency
.then(() => {
window.alert(`You submitted:\n\n${JSON.stringify(values, null, 2)}`)
})
}
export default submit
new.js (New User)
//Import librairies
import submit from 'submit'
class UserForm extends Component {
render() {
const {error, resetForm, handleSubmit} = this.props
return (<form onSubmit={ handleSubmit }>
<!-- Generate dynamic fields -->
</form>)
}
}
let FormWrapper = reduxForm({form: 'newuser', onSubmit: submit})(UserForm)
const selector = formValueSelector('newuser') // <-- same as form name
FormWrapper = connect(state => state.form)(FormWrapper)
Можете ли вы сказать мне, что я делаю неправильно? или Что я могу сделать, чтобы он работал?
Можете ли вы подтвердить, что версия 'Redux-form' вы с помощью? То, что вы делаете, конечно, кажется правильным. –
@ Ashley'CptLemming'Wilson Я использую v6.1.1 –