【发布时间】:2020-12-28 22:43:24
【问题描述】:
实际上,我通过单击提交单击按钮并将该对象推送到数组名称 biodata 中并将数组排序为对象的追随者数量(在 useeffect() 中)来传递对象 问题是在我在输入框中进行一些更改之前,它不会渲染排序数组 从“反应”导入反应 从“反应”导入 {useState,useEffect}
import axios from 'axios';
function Search(){
const [searchkeyword,inputchange] = useState("");
const [biodata,setbiodata] =useState([]);
const load=(e)=>{
axios.get(`https://api.github.com/users/${searchkeyword}`).
then((response)=>setbiodata((biodata)=>[...biodata,response.data])).catch((err)=>console.log(err.message))
e.preventDefault();
}
function compare( a, b ) {
if ( a.followers > b.followers ){
return -1;
}
if ( a.followers < b.followers ){
return 1;
}
return 0;
}
useEffect(()=>{
document.getElementById("myform").reset()
biodata.sort(compare);
setbiodata(biodata)
console.log("cahnge")
},[biodata])
return(
<div>
<form id="myform">
<input type="text" id="a" onChange={(e)=>{inputchange(e.target.value)}} ></input>
<button type="submit" onClick={load}>Click</button>
</form>
{ biodata.length>0 &&
biodata.map((e)=>{
return(
<div key={e.id}>
<p>{e.login}</p>
<p>{e.followers}</p>
</div>
);
})
}
</div>
);
}
export default Search;
【问题讨论】:
标签: reactjs react-hooks use-effect