Reactjs 创建条件内部渲染方法时不显示芯片按钮

Reactjs 创建条件内部渲染方法时不显示芯片按钮,reactjs,material-ui,Reactjs,Material Ui,我试图呈现一个特定的芯片按钮的基础上,如果它被点击或没有。为此,我在组件状态上设置了一个变量,用于保存所有按钮属性。但是,render方法中的if语句没有显示按钮。但是,当我把它放在if语句之外时,它就工作了 列状态变量的每个元素,都是一个芯片按钮状态 为了使其正常工作,我在render()上使用了以下代码: 我希望无论show属性如何,芯片按钮都会显示在屏幕上,但是材质ui应用了不同的设计风格。如果显示为真,则芯片按钮的显示将与假不同。现在,它没有显示芯片按钮,就像以前一样。整个 <G

我试图呈现一个特定的芯片按钮的基础上,如果它被点击或没有。为此,我在组件状态上设置了一个变量,用于保存所有按钮属性。但是,render方法中的if语句没有显示按钮。但是,当我把它放在if语句之外时,它就工作了

列状态变量的每个元素,都是一个芯片按钮状态

为了使其正常工作,我在render()上使用了以下代码:

我希望无论show属性如何,芯片按钮都会显示在屏幕上,但是材质ui应用了不同的设计风格。如果显示为,则芯片按钮的显示将与不同。现在,它没有显示芯片按钮,就像以前一样。

整个

 <Grid item className={classes.chipWrapper}>
               <Chip
               label='Chip 1'
               color="secondary"
               deleteIcon={<DoneIcon />} 
               id='1'
               onClick={this.handleChip}
               />
 </Grid>

因此,可见性当前受“显示”属性的影响。

在渲染中使用“查找”的方式不正确。 Find只返回满足条件的项

e、 g

改用地图

 this.state.columns.map(item => {
   if (item.id === '1'){
     return (<div> Inside </div>)
   }
 })
this.state.columns.map(项=>{
如果(item.id=='1'){
返回(内部)
}
})

为什么要将完全相同/相同的网格/芯片传递给两个三值选项?另外,为什么setState-obj.\u id中的状态变量属性名称不同。为什么下划线?这是一个好问题。使用obj.id不起作用。我传递相同的网格只是为了测试屏幕上是否出现了一些东西。当添加以下调试this.state.columns.find(item=>{console.log(item.id,typeof item.id)if(item.id==='1'时,您会得到什么{….string。它实际上进入了正确的条件,它只是不返回可见的组件。在此.state.columns.find(项=>{…返回此.state.columns.find(项=>{但是show属性不适用于芯片。它应该显示芯片,而不考虑show属性。show属性指的是我要显示/隐藏的表列。芯片将只显示列是显示还是隐藏的,因此它应该始终可见
 <Grid item className={classes.chipWrapper}>
               <Chip
               label='Chip 1'
               color="secondary"
               deleteIcon={<DoneIcon />} 
               id='1'
               onClick={this.handleChip}
               />
 </Grid>
item.show === true
 var found = items.find(function(item) {
   return item > 10;
 })
 this.state.columns.map(item => {
   if (item.id === '1'){
     return (<div> Inside </div>)
   }
 })