简体   繁体   English

reactjs 从 map object 数据更新 setState

[英]reactjs update setState from map object data

I want to update my setValidDate state with date that is coming from the item , but when I set the value right after the data got mapped I got an error says Too many re-renders. React limits the number of renders to prevent an infinite loop我想用来自itemdate更新我的setValidDate state ,但是当我在数据映射后立即设置值时,我收到一个错误,说Too many re-renders. React limits the number of renders to prevent an infinite loop Too many re-renders. React limits the number of renders to prevent an infinite loop . Too many re-renders. React limits the number of renders to prevent an infinite loop Is there any way to update the new value?有没有办法更新新值? And why it's error?为什么它是错误的?

const [validDate, setValidDate] = useState("");

return(
  ...
 {items.map((item) => {
 const { id, name, date, image, desc } = item;
 setValidDate(date); //this one cause error
 return (
  ...
        )
)

This is what you are looking for:这就是您要查找的内容:

const [validDate, setValidDate] = useState("");

updateDate(date){
  setValidDate(date) 
}

return(
  ...
 {items.map((item) => {
 const { id, name, date, image, desc } = item;
 return (
  <input onChange={()=> updateDate(date)}>
        )
)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM