问题描述
我的应用程序中有一些状态,当我单击按钮时,我试图重置其值。
首次呈现页面时,将执行handleAllProjects
:
const [tagPage,setTagPage] = useState({});
const handleAllProjects = () => {
setTagPage({}) // didn't work
const allProjects = `https://api.fluxoresultados.com.br/portfolio/pag?limit=${cardLimit}`;
axios.get(allProjects)
.then(res => {
let cards = res.data
setCards(cards)
setTagPage({1: "",2: cards[cards.length - 1]["id"]})
setCurrentPage(1)
console.log(currentPage) //line 61
console.log(tagPage) //line 62
})
.catch(err => {
console.log(err)
})
}
我还具有以下按钮单击事件处理程序:
const handleSelectButton = (id,tag) => {
if (id === pressedIndex) {
setPressedIndex('')
setTimeout(handleAllProjects,500);
} else {
setPressedIndex(id)
setTimeout(() => handleTag(tag),500);
}
} }
此功能的目的是它将在第一次单击时过滤项目,但是在再次单击时,它将使用handleAllProjects
函数呈现所有内容。
我的页面在卡片上渲染了6个项目。 setTagPage采用最后一个项目的“ id”,因为DynamoDB要求使用它进行分页。在此页面上,有项目过滤器。当我应用过滤器时,setTagPage需要另一个“ id”。当我删除过滤器时(我回到页面首次呈现的状态)。 SetTagPage不会重置该值,而是带来页面的“ id”,就像仍然存在过滤器一样。
但是,TagPage
变量包含一个标签,而不是重置为其初始状态。 Here's an example of what I'm talking about - I need the console.log
statement on line 62 to be the same as before.如何将该值重置回其初始状态?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)