[英]React component doesn't rerender based onprops change
我有 pdf-viewer 組件
export default function PDFViewer({keyword}) {
const searchPluginInstance = searchPlugin({
keyword,
})
const {Search} = searchPluginInstance;
return (
<div>
<Search/>
<Viewer plugins={[searchPluginInstance]} />
</div>
)
}
keyword
是傳遞給組件的字符串數組。 傳遞的關鍵字列表在 pdf 文檔中突出顯示,即 function。但這僅適用於第一個渲染周期。 在我更新父組件中的關鍵字並將其傳遞到此處后,什么也沒有發生。
基本上,一旦它創建了searchPluginInstance
實例,它就不會根據 props 的變化而改變。 我不知道如何解決問題? 是否有設計模式或其他方法來處理這個問題?
我認為,
如果您想在keyword state
更改時重新呈現PDFViewer
,則應確保傳遞給PDFViewer
組件的keyword
必須是 react state
。
可能是你正在做那樣的事情 -
function ParentComponent() {
let keyword = [...]
return (
<PDFViewer keyword={keyword} />
)
}
嘗試這個 -
function ParentComponent() {
const [keyword, setKeyword] = setState(arr);
return (
<PDFViewer keyword={keyword} />
)
}
添加父組件代碼也會很有幫助,以便我們進行檢查。
一些建議:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.