我有一個可以被 2 個螢屏查看的類組件,并且 1 個螢屏正在傳遞道具,而 1 個則不是。所以如果沒有道具,我想將默認值“”0r設定為空,如果有道具,那么值應該基于道具。但我不能這樣做。任何幫助將不勝感激..流程是這樣的..主螢屏==>評級(沒有道具所以狀態應該為空)==>搜索螢屏==>評級(有道具。狀態應該從狀態中獲取價值)
class Rating extends Component {
constructor() {
super();
const propItem = this.props?.route.params.item;
this.state = {
brand : propItem != undefined ? propItem.brand : "",
我已經嘗試過componentDidMount,但它會導致無限回圈,如果我在渲染方法中使用它也會導致
uj5u.com熱心網友回復:
嘗試getDerivedStateFromProps
getDerivedStateFromProps 在呼叫 render 方法之前被呼叫,無論是在初始掛載時還是在后續更新時。它應該回傳一個物件來更新狀態,或者回傳 null 來更新任何內容。
uj5u.com熱心網友回復:
您需要通過優點constructor和super功能。
class Rating extends Component {
constructor(props) {
super(props);
const propItem = this.props?.route.params.item;
this.state = {
brand : propItem != undefined ? propItem.brand : ""
}
}
render() {
<div></div>
}
}
uj5u.com熱心網友回復:
class Rating extends Component {
constructor(props) {
super(props);
this.state = {
brand : this.props?.route.params.item != undefined ? this.props?.route.params.item.brand : ""
}}
render() {
<div></div>
}}
您可以嘗試喜歡它,確保您正在從 this.props.navigation 中的上一個螢屏傳遞專案
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/485329.html
標籤:javascript 反应 反应式
上一篇:TypeError:props.navigation.getParam不是函式。(在'props.navigation.getParam('docId')'中,
