Я получаю сообщение об ошибке - Uncaught TypeError: _postSchema.Post не является конструктором - PullRequest
0 голосов
/ 12 февраля 2020

Я пытаюсь получить значения из формы и сохранить их в локальном mongoDb, но у меня ошибка. Я был бы очень признателен за любую помощь в решении этой проблемы. Я не знаю, заключается ли проблема в определении формы или, возможно, в том, как babel интерпретирует код

Моя схема, просто еще одна схема

import mongoose from 'mongoose'
const { Schema } = mongoose

const schemaPost = new Schema({ title: String, body: String })

export const Post = mongoose.model('post', schemaPost)

определение моего класса c для редукции

import { Field, reduxForm } from 'redux-form'
import { Post } from './schemaPost'

class CreatePost extends Component {
  renderInput = ({ input, label }) => {
    return (
      <div>
        <label> {label} </label>
        <input {...input} />
      </div>
    )
  }

  onSubmit = values => {
    new Post({
      title: values.title,
      body: values.body
    }).save()
  }

  render() {
    return (
      <div>
        <form onSubmit={this.props.handleSubmit(this.onSubmit)}>
          <Field name='title' component={this.renderInput} label='enter title' />
          <Field name='body' component={this.renderInput} label='enter body' />
          <button>Submit</button>
        </form>
      </div>
    )
  }
}

export default reduxForm({ form: 'createPost' })(CreatePost)

the error

Ответы [ 2 ]

0 голосов
/ 12 февраля 2020

Сделайте это для экспорта

const Post = mongoose.model('post', schemaPost);
export { Post };

Если вы экспортируете объекты, это правильный синтаксис для экспорта

Если вы хотите придерживаться существующего подхода к экспорту, вам нужно измените свое заявление на импорт и экспорт, как это

// export
export mongoose.model('post', schemaPost);

// import
import Post from './schemaPost';
0 голосов
/ 12 февраля 2020

попробуйте перейти с

export const Post = mongoose.model('post', schemaPost)

на

export const Post = mongoose.model('Post', schemaPost)
...