反応フォームの入力値が正しく表示されない

グナル

私はプロジェクトに取り組んでおり、ツアーを作成するためのフォームを作成しています。問題はフォームの入力値が交換されていることだけです。

例-

実際の出力-{tourName: 'pune darshan'、場所: '999'、価格: 'pune'}期待される出力:-{tourName: 'pune darshan'、場所: 'pune'、価格: '999'}

私はどこが間違っているのかわかりません私は6時間以来ここで立ち往生しています

これが私が試したことです

フォームコンポーネント


import React, { useState } from "react";
import { useDispatch } from "react-redux";
import { createTour } from "../../store/slices/tourSlice";
import "./createListing.scss";

const CreateListing = () => {
  const [tour, setTour] = useState({
    tourName: "",
    price: "",
    location: "",
  });
  const dispatch = useDispatch();
  const handleInput = (event) => {
    setTour((tour) => ({
      ...tour,
      [event.target.name]: event.target.value,
    }));
  };
  const handleSubmit = (event) => {
    event.preventDefault();
    dispatch(createTour(tour.tourName, tour.price, tour.location));
  };

  return (
    <div>
      <div className='form-controller'>
        <form action='' method='post' onSubmit={handleSubmit}>
          <div className='form-group'>
            <input
              type='text'
              className='form-control'
              name='tourName'
              placeholder='Enter Tour Name'
              onChange={handleInput}
              required
            />
          </div>
          <div className='form-group'>
            <input
              type='text'
              className='form-control'
              name='location'
              placeholder='Enter Tour Location'
              onChange={handleInput}
              required
            />
          </div>

          <div className='form-group'>
            <input
              type='number'
              className='form-control'
              name='price'
              placeholder='Enter Tour Cost'
              onChange={handleInput}
              required
            />
          </div>
          <div className='text-center'>
            <button type='submit theme-btn'>Create Tour</button>
          </div>
        </form>
      </div>
    </div>
  );
};

export default CreateListing;

これがreduxツールキットファイルです

import { createSlice } from "@reduxjs/toolkit";
import axios from "axios";
import { history } from "./../../helpers/history";

export const initialState = {
  tourName: "",
  location: "",
  price: "",
  error: "",
  loading: false,
};

const tourSlice = createSlice({
  name: "tour",
  initialState,
  reducers: {
    tourCreateRequest: (State, action) => {
      return {
        loading: true,
      };
    },
    tourCreateSuccess: (state, action) => {
      return { loading: false, tourInfo: action.payload };
    },
    tourCreateFail: (state, action) => {
      return {
        loading: false,
        error: action.payload,
      };
    },
  },
});

const {
  tourCreateFail,
  tourCreateRequest,
  tourCreateSuccess,
} = tourSlice.actions;

export default tourSlice.reducer;

export const createTour = (tourName, location, price) => async (dispatch) => {
  try {
    dispatch(tourCreateRequest);

    const tourData = {
      tourName,
      location,
      price,
    };

    const res = await axios.post(
      "http://localhost:3000/api/v1/tours",
      tourData
    );

    if (res) {
      dispatch(tourCreateSuccess);
      // history.push("/dashboard");
    } else {
      dispatch(
        tourCreateFail(
          error.response && error.response.data.message
            ? error.response.data.message
            : error.message
        )
      );
      console.log("error");
    }
  } catch (error) {
    dispatch(
      tourCreateFail(
        error.response && error.response.data.message
          ? error.response.data.message
          : error.message
      )
    );
  }
};

これがモデルファイルです

const mongoose = require("mongoose");

const tourSchema = mongoose.Schema(
  {
    tourName: { type: String },
    rating: { type: String, default: 4.5 },
    location: { type: String },
    price: { type: String, default: 999 },
  },
  { timestamps: {} }
);

const Tour = mongoose.model("Tour", tourSchema);
module.exports = Tour;

これがコントローラーコードです

const createTours = async (req, res, next) => {
  const { tourName, price, location } = req.body;
  console.log(req.body);
  try {
    const newTour = new Tour({
      tourName,
      price,
      location,
    });
    newTour.save();
    res.status(200).json({
      status: "success",
      newTour,
    });
  } catch (error) {
    res.status(404).json({
      status: "failed",
      error: error,
    });
  }
};
jzProg

createTour関数のパラメーターを間違った順序で渡しますディスパッチラインを更新する必要があります。

dispatch(createTour(tour.tourName, tour.location, tour.price));

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

アイテムの値がフォームに正しく表示されない

分類Dev

XamarinフォームのToolbaritemsUWPが正しく表示されない

分類Dev

IE11でフォームファイルの入力が正しくリセットされない

分類Dev

入力フィールドの提案がFirefoxで正しく表示されない

分類Dev

反応フォームが正しく送信されません

分類Dev

JavaScript / HTML非表示のフォーム要素が正しく表示されない

分類Dev

HTMLフォームへの入力中に、HTML入力値に完全な変数が表示されない

分類Dev

反応リーフレットマップが正しく表示されない

分類Dev

日付フィールドが正しく表示されない反応中

分類Dev

Javascriptがフォームを正しく検証していません。ユーザー入力なしでアラートが表示される

分類Dev

フォームの入力値への変更がJavascriptに表示されないのはなぜですか?

分類Dev

Reactフォーム:入力データが表示されない

分類Dev

Django:AJAXを使用したファイルのアップロード:フォームに、ファイル入力フィールドが空である(またはCSRFトークンがないか正しくない)と表示されます

分類Dev

フォームの検証が正しく機能していません:名前が入力されていないままです

分類Dev

Chromeで入力フィールドが正しく表示されないのはなぜですか?

分類Dev

角度-$ indexが一部のフォーム入力で正しく繰り返されていません

分類Dev

フォーム入力ボックスが表示されない

分類Dev

登録フォームに入力が表示されない

分類Dev

入力値がFormArrayに正しく入力されない

分類Dev

Chromeのフォーム入力パディングが表示されない

分類Dev

LATとLNGがHTMLの入力フォームに表示されない

分類Dev

スイングフォームが正しく表示されない

分類Dev

反応表示が正しく更新されない

分類Dev

Golang HTML GETフォームメソッドの値が入力されない

分類Dev

Golang HTML GETフォームメソッドの値が入力されない

分類Dev

フォーム送信時にjQueryからの入力値が取得されない

分類Dev

Rails-ログインが正しくない場合(セッションモデルが含まれていない場合)、入力されたログインフォームの値を保持します

分類Dev

データベースのHTMLフォーム<select>データが正しく表示されない

分類Dev

正しい値を入力した後、Reactに表示されるフォーム検証

Related 関連記事

  1. 1

    アイテムの値がフォームに正しく表示されない

  2. 2

    XamarinフォームのToolbaritemsUWPが正しく表示されない

  3. 3

    IE11でフォームファイルの入力が正しくリセットされない

  4. 4

    入力フィールドの提案がFirefoxで正しく表示されない

  5. 5

    反応フォームが正しく送信されません

  6. 6

    JavaScript / HTML非表示のフォーム要素が正しく表示されない

  7. 7

    HTMLフォームへの入力中に、HTML入力値に完全な変数が表示されない

  8. 8

    反応リーフレットマップが正しく表示されない

  9. 9

    日付フィールドが正しく表示されない反応中

  10. 10

    Javascriptがフォームを正しく検証していません。ユーザー入力なしでアラートが表示される

  11. 11

    フォームの入力値への変更がJavascriptに表示されないのはなぜですか?

  12. 12

    Reactフォーム:入力データが表示されない

  13. 13

    Django:AJAXを使用したファイルのアップロード:フォームに、ファイル入力フィールドが空である(またはCSRFトークンがないか正しくない)と表示されます

  14. 14

    フォームの検証が正しく機能していません:名前が入力されていないままです

  15. 15

    Chromeで入力フィールドが正しく表示されないのはなぜですか?

  16. 16

    角度-$ indexが一部のフォーム入力で正しく繰り返されていません

  17. 17

    フォーム入力ボックスが表示されない

  18. 18

    登録フォームに入力が表示されない

  19. 19

    入力値がFormArrayに正しく入力されない

  20. 20

    Chromeのフォーム入力パディングが表示されない

  21. 21

    LATとLNGがHTMLの入力フォームに表示されない

  22. 22

    スイングフォームが正しく表示されない

  23. 23

    反応表示が正しく更新されない

  24. 24

    Golang HTML GETフォームメソッドの値が入力されない

  25. 25

    Golang HTML GETフォームメソッドの値が入力されない

  26. 26

    フォーム送信時にjQueryからの入力値が取得されない

  27. 27

    Rails-ログインが正しくない場合(セッションモデルが含まれていない場合)、入力されたログインフォームの値を保持します

  28. 28

    データベースのHTMLフォーム<select>データが正しく表示されない

  29. 29

    正しい値を入力した後、Reactに表示されるフォーム検証

ホットタグ

アーカイブ