React 组件状态在按钮单击后设置后不会改变
React component state do not change after setting it on button click
我仍在学习 React Hooks,请多多包涵;我正在编写一个自定义服务器端分页组件;然后循环遍历页面以像这样呈现它们:
const [activePageNumber, setActivePageNumber] = useState(1);
for (var i = 1; i <= pages; i++) {
if (activePageNumber > 0 && i == activePageNumber)
rows.push(
<li
key={i}
className="paginate_button page-item active"
onClick={() => {
setActivePageNumber(i);
console.log(activePageNumber);
}}
>
<a className="page-link">{i}</a>
</li>
);
else
rows.push(
<li
key={i}
className="paginate_button page-item"
onClick={() => {
setActivePageNumber(i);
console.log(activePageNumber);
}}
>
<a className="page-link">{i}</a>
</li>
);
}
和 jsx 如下:
<ul className="pagination">
{rows}
</ul>
服务器返回 4 个页面,并且它们在屏幕上正确呈现;但是问题是每当我单击任何页面按钮时,activePageNumber 始终为 1,它根本没有改变。
您正在 return
之外构建整个 html,因此 i
将始终默认为 rows
中每个 li
元素的最后一个数字当您尝试在 ul
中渲染它时列出
相反,您应该在 return
语句中添加所有这些逻辑。
我仍在学习 React Hooks,请多多包涵;我正在编写一个自定义服务器端分页组件;然后循环遍历页面以像这样呈现它们:
const [activePageNumber, setActivePageNumber] = useState(1);
for (var i = 1; i <= pages; i++) {
if (activePageNumber > 0 && i == activePageNumber)
rows.push(
<li
key={i}
className="paginate_button page-item active"
onClick={() => {
setActivePageNumber(i);
console.log(activePageNumber);
}}
>
<a className="page-link">{i}</a>
</li>
);
else
rows.push(
<li
key={i}
className="paginate_button page-item"
onClick={() => {
setActivePageNumber(i);
console.log(activePageNumber);
}}
>
<a className="page-link">{i}</a>
</li>
);
}
和 jsx 如下:
<ul className="pagination">
{rows}
</ul>
服务器返回 4 个页面,并且它们在屏幕上正确呈现;但是问题是每当我单击任何页面按钮时,activePageNumber 始终为 1,它根本没有改变。
您正在 return
之外构建整个 html,因此 i
将始终默认为 rows
中每个 li
元素的最后一个数字当您尝试在 ul
相反,您应该在 return
语句中添加所有这些逻辑。