Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在React中删除项时解决空值问题_Javascript_Reactjs_React Native_Null_Conditional Rendering - Fatal编程技术网

Javascript 在React中删除项时解决空值问题

Javascript 在React中删除项时解决空值问题,javascript,reactjs,react-native,null,conditional-rendering,Javascript,Reactjs,React Native,Null,Conditional Rendering,当我删除react组件中的一项时,另一个组件中的一些代码将变为null,react应用程序将崩溃。有没有解决方法,或者我可以用这种方法来实现,而不是得到一个错误?请参阅下面的代码 当我删除组件中的某个项时,我想某些外部代码会呈现为null,因为我得到了错误: TypeError:无法读取未定义的属性“type” 114 | class AccountActivity extends Component { 115 | static getDerivedStateFromProps(p

当我删除react组件中的一项时,另一个组件中的一些代码将变为null,react应用程序将崩溃。有没有解决方法,或者我可以用这种方法来实现,而不是得到一个错误?请参阅下面的代码

当我删除组件中的某个项时,我想某些外部代码会呈现为null,因为我得到了错误: TypeError:无法读取未定义的属性“type”

  114 | class AccountActivity extends Component {
  115 |   static getDerivedStateFromProps(props, state) {
  116 |     const { currentAccountId, accounts } = props;
> 117 |     const currentAccountType = currentAccountId ? accounts.filter(acc => acc.id === currentAccountId)[0].type : null;
  118 | 
  119 |     const { currentTab } = state;
  120 |     if (currentAccountType === ACCOUNT_TYPES.MANUAL && (currentTab === ACTIVITY_TABS.OPEN_ORDERS || currentTab === ACTIVITY_TABS.ORDER_HISTORY)) {

最好的解决方案是从
帐户
列表中删除该项目,而不是将其设置为null。该错误意味着
帐户中没有值。筛选器(…)[0]
。请尝试
accounts.filter(…)[0]?。键入
。问号向javascript指示前面的值可能为null或未定义,如果为null或未定义,则停止执行该语句。@CharlesBamford感谢您的输入,但是我尝试了这一点,并在执行时遇到意外的令牌错误好的,我不知道您正在运行的js版本。您可以使用以下命令模拟该行为:
let currentAccountType=null;如果(currentAccountId){const filtered=accounts.filter(acc=>acc.id==currentAccountId);currentAccountType=filtered.length&&filtered[0].type;}
@CharlesBamford谢谢Charles,这似乎成功了。然而,还有一个地方我得到空值,并尝试使用相同的方法。但是在这里返回一些错误:const accountType=filteraccounted?accounts.find(acc=>acc.id==filterAccountId)。类型:null;