input box에 데이터 입력후 확인 버튼 누르고 input 데이터 수정하면 오류 발생 ...
118
작성한 질문수 27
안녕하세요 Redux 수업 다 듣고 이해 되지 않아서 따로 프로젝트를 뽑아서 Redux를 연습 하고 있어요...
일단 이해는 다된거 같아요...
아래 dispatch 하는 부분에서 오류가 뜨네요..
먼저 처리 순서가 ... input에 데이터를 입력하고 로그인 버튼을 클릭하고 다시 input에 데이터를 입력하면 오류가 뜨네요
cannot assign to read only property 'current' of object '# object '
버튼 클릭하는 부분에 dispatch하는 내용을 넣었구요..
구글에는 깊은 복사 뭐 이런거 있던데 그거랑 관련 없는거 같구...
===================================
리듀스 기본을 알면 저 문제 해결될꺼라는 어떤분의 답변이 야속하네요 ...
코드 시작
=============================
import { useState } from "react";
import { useDispatch } from "react-redux";
import {login} from "../slices/loginSlice"
const initState = {
email:'',
password:''
}
function LoginComponent(props) {
const [loginParam, setLoginParam] = useState({...initState})
const disPatch = useDispatch()
const handleChange = (e)=> {
loginParam[e.target.name] = e.target.value
setLoginParam({...loginParam})
}
const handleLoginClick = (e)=>{
console.log(".......")
disPatch (
login(loginParam)
)
}
const handleLogoutClick = (e)=>{
disPatch(
login(initState)
)
}
return (
<div>
<div className="flex flex=nowrap gap-x-8 place-content-center ">
<div>
<div> login </div>
<div>
<input className="text-base w-300 p-6 rounded-r border border-solid border-neutral-500 shadow-md"
name="email" type ={'text'} value={loginParam.email} onChange ={handleChange}>
</input>
</div>
<div>
<input className="text-base w-300 p-6 rounded-r border border-solid border-neutral-500 shadow-md"
name="password" type={'password'} value={loginParam.password} onChange={handleChange}
>
</input>
</div>
<div>
<button className = "rounded p-4 w-36 bg-blue-500 text-xl text-white"
onClick={handleLoginClick}
>
Login..
</button>
</div>
</div>
<button onClick={handleLogoutClick}>
logout
</button>
</div>
</div>
)
}
export default LoginComponent;
=============================
답변 1
1
현재 질문에 올려두신 코드의 내용 자체의 문제는 아닌듯 합니다.
loginSlice에서 구현된 코드에서 기존의 상태를 수정하는 부분이 있으면 'cannot assign.. ' 메시지가 뜨게 됩니다.
0
일단 다시 연구 해서 찾긴 했는데 또다른 연구가 필요하겠네요..
const handleChange = (e)=> {
loginParam[e.target.name] = e.target.value
console.log(loginParam)
setLoginParam({...loginParam})
}
// const handleLoginClick = (e)=>{
// console.log(".......")
// disPatch (
// login({loginParam})
// )
// }
const handleLoginClick = (e)=>{
console.log(".......")
disPatch (
login({...loginParam})
)
}login({... <== 이거 ...을 붙이니깐 문제가 없어 지네요..
... 연산을 제가 모르고 강의 공부를 진행했던게 이렇게 터졌네요...
그냥 ...은 배열을 통채로 복사 하는 정도로만 알았네요..
... 연산은 구글에도 잘 안보이구 .
문법에 import {000} from 이랑 import 000 from이랑도 문법이 다르고 ...( {} 안해서 오류가 나 꽤나 고생했음) 기분 상함 ..
동일하게 실습하는데 이상하게 페이지를 찾지 못하네요..
0
74
2
22. REST 방식 컨트롤러 만들기(2), 29. 등록처리 부분 질문이 있습니다.
0
74
2
37강. 강의수업듣다 질문드립니다.
0
57
2
TodoDTO test 함수
0
80
3
강사님 오타 있음요
0
78
2
No 1. 교제(ppt) soruce 복붙 문제 의 건
0
95
4
No 1. 교제(ppt) soruce 복붙 문제 의 건
0
70
3
17강 문의드립니다.
0
44
1
카카오 연동설정이 이제 안되는거 같아요
0
194
2
8장 마지막 강의 시 오류
0
98
4
혹시 뭐가 문제인지 알 수 있나요?
0
87
2
챕터: React-Router 설정
0
58
2
백)TODO관련
0
56
2
마리아 db 설치중 포트를 이미 사용중이라고 합니다
0
112
2
이강의 듣고 소화시켰다면 몇년차 정도 개발자라고 할수 있을까요?
0
105
1
CSR , SSR 의 수요 궁금증 질문
0
83
2
섹션5부터...
0
73
1
간단한 코드 질문!!
0
61
2
tbl_todo 질문입니다
0
65
2
수업 외 질문인데 'tbl'이 무슨 의미인가요???
0
292
2
엔티티클래스에서 질문입니다
0
78
2
수정시 writer값이 삭제되는 오류
0
42
2
교안 31 오타 수정해주세요
0
64
2
쿠키에 accessToken, refreshToken을 담고, 조회 시에 undefined
0
80
1





