如何在本机反应中仅禁用 setState 消息警告

Posted

技术标签:

【中文标题】如何在本机反应中仅禁用 setState 消息警告【英文标题】:How to disable only the setState message warning on react native 【发布时间】:2017-09-22 08:00:53 【问题描述】:

我想禁用 setState 消息警告

在布局 1 上: 我的构造函数:

constructor(props)
super(props);
//Constructeur

    this.lestachesitemsRef=getDatabase().ref('n0rhl66bifuq3rejl6118k8ppo/lestaches'); this.lestachesitems=[];
    this.state=
    //Debutdustate
    lestachesSource: new ListView.DataSource(rowHasChanged: (row1, row2)=>row1 !== row2),
    Prenom: '',
    Nom: '',
    

我的功能:

    ajouter= () => 
 if( (this.state.Nom !== '') && (this.state.Prenom !== ''))  this.lestachesitemsRef.push(  Nom: this.state.Nom , Prenom: this.state.Prenom , );  this.setState( Nom : '' ) , this.setState( Prenom : '' )    

我的组件DidMount

 componentDidMount()
    
    //DidMount
     this.lestachesitemsRef.on('child_added',   (dataSnapshot)=> this.lestachesitems.push(id: dataSnapshot.key,   text: dataSnapshot.val()); this.setState(lestachesSource: this.state.lestachesSource.cloneWithRows(this.lestachesitems)); );
      this.lestachesitemsRef.on('child_removed', (dataSnapshot)=> this.lestachesitems = this.lestachesitems.filter((x)=>x.id !== dataSnapshot.key);  this.setState( lestachesSource: this.state.lestachesSource.cloneWithRows(this.lestachesitems)););
    

我的 :

<TextInput style=styles.Dtext placeholder="Nom" onChangeText=(text) => this.setState(Nom: text) value=this.state.Nom/>

<TextInput style=styles.Dtext placeholder="Prenom" onChangeText=(text) => this.setState(Prenom: text) value=this.state.Prenom/>

<Button title='Allerlayout2' onPress=() => this.verl2() onLongPress=() => this.infol2() buttonStyle= styles.View  icon=name: 'squirrel', type: 'octicon', buttonStyle: styles.View   />
<Button title='ajouter' onPress=() => this.ajouter() onLongPress=() => this.infoajout() buttonStyle= styles.View  icon=name: 'squirrel', type: 'octicon', buttonStyle: styles.View   />

<ListView dataSource=this.state.lestachesSource renderRow=this.renderRowlestaches.bind(this) enableEmptySections=true />

Layout2 和 Layout1 一样。 谢谢!

【问题讨论】:

你可能不想禁用它,它看起来很糟糕(我猜是异步相关的)。介意分享代码以便我们更好地帮助您吗? @FerranNegre 我添加了代码谢谢! @FerranNegre gist.github.com/Sofiane-13/64d2467dca037dd35bf0dd4d430bdd38 【参考方案1】:

警告 警告将以黄色背景显示在屏幕上。这些警报称为 YellowBoxes。单击警报以显示更多信息或将其关闭。 与 RedBox 一样,您可以使用 console.warn() 来触发 YellowBox。 YellowBoxes 可以在开发过程中使用 console.disableYellowBox = true; 禁用。可以通过设置应忽略的前缀数组以编程方式忽略特定警告:console.ignoredYellowBox = ['Warning: ...'];. 在 CI/Xcode 中,也可以通过设置 IS_TESTING 环境变量来禁用 YellowBoxes。

http://facebook.github.io/react-native/docs/debugging.html#yellowbox-redbox

【讨论】:

以上是关于如何在本机反应中仅禁用 setState 消息警告的主要内容,如果未能解决你的问题,请参考以下文章

在 componentDidMount 上反应本机 setState 不起作用

允许“响应本机需求周期”警告

卸载组件时对 setState 做出反应警告

如何在我的示例中正确使用 setState()?

如何在本机反应中禁用键盘

反应对象的本机 setState/useState