programing

솔루션: ev.preventDefault는 디스패치를 사용할 때 함수가 아님

prostudy 2022. 3. 20. 14:58
반응형

솔루션: ev.preventDefault는 디스패치를 사용할 때 함수가 아님

나는 양식을 제출할 때 이상한 점이 생겼다.ev.preventDefault()를 그대로 사용할 때는 모든 것이 예상대로 작동하지만 두 줄 뒤에 함수에 디스패치를 추가할 때는 ev.preventDefault가 함수가 아니라는 오류가 표시된다.여기 내 코드 미리 고마워!

const addReview = async ev => {
  ev.preventDefault()
  if (!email || !message) return alert('All fields are required')
  await dispatch(addReview({email,message}))
  console.log('Adding review!');
}

<form onSubmit={addReview}>
  <input value={email} placeholder="Email" type="email" id="email" name="email" onChange={handleChange}/>
  <textarea
    name="message"
    placeholder="Message"
    rows="4"
    cols="50"
    onChange={handleChange}
    value={message}
  ></textarea>
  <button>Submit</button>
</form>

해결됨: 문제는 해당 구성요소와 조치 페이지에서 같은 이름을 사용하여 발생한 것으로, 모두 감사한다.

addReview 기능을 내부에서 디스패치로 호출하는 이유는?

const addReview = async ev => {
  ev.preventDefault()
  if (!email || !message) return alert('All fields are required')
  await dispatch(?????({email,message})) // This line should be changed
  console.log('Adding review!');
}

참조URL: https://stackoverflow.com/questions/70345448/solution-ev-preventdefault-is-not-a-function-when-using-dispatch

반응형