我實作了一種方法,當我單擊按鈕時,我將變數(單擊按鈕時構建的物件)傳遞到另一個頁面。
現在我的問題出在接收這個變數的頁面上,因為當我傳遞這個值時,我用它來設定其他 const 變數,如果我再次點擊按鈕,變數仍然像以前一樣設定。
所以我有一個包含按鈕的 index.js 頁面
const index = ({}) => {
return (
// others //
<Permission />
)
}
在Permission.js
const Permission = () => {
const request = () => {
let requestVariable
// all the logic to populate the requestVariable
if(//.....){
requestVariable = {
id: idRequest,
requestType: 'permission',
startDate: myDateVariable
// ....
}
Actions['allPermissions']{(requestVariable : requestVariable )}
}
return (
<MyButton type="primary" onPress={() => request()} />
)
}
所以我有我的 AllPermissions.js
const AllPermission = ({requestVariable}){ const[componentSel, setComponentSel] = useState(0)
return( {componentSel === 0 && <NewPermission requestVariable = {requestVariable } />} ) }
現在在 NewPermission 我遇到了我談到的問題
const NewPermission = ({requestVariable }){
const [type, setType] = useState(requestVariable ? requestVariable.requestType : 'permission'
const [startDate, setStartDate] = useState(requestVariable ? requestVariable.startDate : new Date())
//....
}
現在正如我所說,問題出在新請求中,因為我可以在此頁面中單擊按鈕或從選項卡中訪問。如果我第一次單擊該按鈕,則所有設定都正確,但如果我轉到 index.js 頁面并再次單擊,(因此我在物件中插入的值不同)不會顯示。如何在我的 NewPermission 頁面中填充值?
uj5u.com熱心網友回復:
試試這個方法
const NewPermission = ({requestVariable }){
const [type, setType] = useState(requestVariable ? requestVariable.requestType : 'permission'
const [startDate, setStartDate] = useState(requestVariable ? requestVariable.startDate : new Date())
useEffect(() => {
setType( requestVariable ? requestVariable.requestType : 'permission' );
}, [requestVariable]);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/454262.html
標籤:javascript 反应 反应式
上一篇:是否可以動態生成下拉項?
