[英]Want to display the increment counter value on screen
在不重新渲染的情況下,組件需要在屏幕上顯示增量值(changes.current)。 單擊按鈕時,會發生增量,它會顯示在控制台上但不會更改屏幕上的值。 我們需要顯示增量值(changes.current)。 我也嘗試過使用document.getElementById("p_id")
但它不起作用。
import "./styles.css";
import React, { useRef } from "react";
export default function App() {
let changes = useRef(0);
const changingValue = () => {
changes.current++;
//To print on console
console.log("New Value: " + changes.current);
};
// Statement to check the rerendering happening or not
console.log("rendering not happening");
return (
<div className="App">
{/* Button for click */}
<button onClick={changingValue}>
<b>Click me</b>
</button>
<p id='p_id'>{changes.current}</p>
</div>
);
}
預期:更新后的值應在單擊按鈕時顯示:在此處輸入圖像描述`
改變 React ref 不會觸發組件重新渲染。 React 組件由於以下 3 個原因之一而重新渲染:
更新一些本地 state 將觸發重新渲染。
例子:
import React, { useEffect, useState } from "react";
export default function App() {
const [changes, setChanges] = useState(0);
const changingValue = () => {
// Enqueue state update to increment the current
// state value by 1, trigger rerender
setChanges(c => c + 1);
};
useEffect(() => {
console.log(changes);
}, [changes]);
return (
<div className="App">
<button type="button" onClick={changingValue}>
<b>Click me</b>
</button>
<p>{changes}</p>
</div>
);
}
您可以繼續在 React ref 中存儲您喜歡的任何值,但為了查看任何更新的值,組件必須重新渲染,以便更新的 UI 可以刷新到 DOM。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.