如何使用useState取回数据


const noticeList = useSelector(state => state.noticeReducer.list) //현재 페이지에 띄워질 공지 리스트
//page
const [current, setCurrent] = useState(0);  //현재 페이지
const pageInfo = useSelector(state => state.noticeReducer.pageInfo);  //전체 페이지 정보
const [keyword, setkeyword] = useState(null);       //키워드 state
const [searchedList, setsearchedList] = useState(noticeList);       // 검색 할때만 사용하므로 여기에 사용
const [active, setactive] = useState("");
console.log(searchedList)
const Search = () => {
const data = axios.post('/noticeList',{
keyword : keyword,
})
.then(res => res.data)
.catch(err => console.log(err));

setsearchedList(data)
}
useEffect(() => {
return (
dispatch(getNoticeList(current+1,keyword))  //공지사항 목록 받아오기
)
}, [dispatch, current])
//화면에 출력하기 위해 map 함수를 활용
let homeNotice = searchedList.map(
item => 
{
return(
<NoticeDetail key = {item.noticeId} title = {item.title} active = {active} setactive = {setactive} content = {item.content}/>
)

}
)

我将数据保存在Redux中的useEffect状态。在搜索功能中搜索时,我想覆盖处于相同状态的数据。我该怎么办?

Uncaught TypeError: searchedList.map is not a function

您没有正确使用promise,您应该使用promise的结果设置数据,而不是使用promise:

const Search = () => {
axios
.post('/noticeList', {
keyword: keyword,
})
.then(({ data }) => setsearchedList(data))
.catch((err) => console.log(err));
};

我假设api调用解析为data是一个数组。

相关内容

  • 没有找到相关文章

最新更新