开发者问题收集

如果在 React Native 中

2021-03-05
279

我是 React Native 的新手。我创建了一个屏幕,在其中使用 if else 函数,如下所示。

constructor(props) {
    super(props);
    this.state={
     phpid = ''
}
}

validateInputs = (event) => {
  
  const data = this.props.route.params.data
  const { phpid } = this.state;


if (data.retail_information_data[0] != '') {
      phpid == data.retail_information_data[0].id  
}else{
      phpid == null
}
 
    AsyncStorage.multiGet(["application_id", "created_by"]).then(response => {
  
       console.log(phpid)

  fetch('https://njdnfech/Android_API_CI/uploaddata/tffmerchant_retail_details?query=', {
    
      body: JSON.stringify([{phpid : phpid}])
    })
    .then((returnValue) => returnValue.json())
    .then(function(response) {
     console.log(response)
      return response.json();
}

但我得到的是 = data.retail_information_data[0] = null 或可以说为空 然后根据 if else,我的 else 条件是 'phpid == null' 应该运行 但即使 'data.retail_information_data[0] = null' 我的 else 条件没有运行,我的控制台仍然显示 'TypeError:undefined 不是对象(评估 'data.retail_information_data[0].id')' 我的 if else 中有什么问题吗,或者如何编写正确的 if else

2个回答

下面应该可以工作...

if (data && data?.retail_information_data.length) {
    this.setState(phpid: data?.retail_information_data[0]?.id)
    }else{
          this.setState(phpid: null)
    }
Sourav Dey
2021-03-05

尝试使用三元运算符。 php id = data.retail information data[0] ? data.retail_information_data[0].id : null

SUHEL MAKKAD
2021-03-05