React native 如何更改ListView中每隔一行的背景色?

React native 如何更改ListView中每隔一行的背景色?,react-native,React Native,是否有办法更改ListView中每第二行的背景色 我认为使用if语句应该是可行的,该语句可以识别它是偶数行还是奇数行,并基于此选择样式。然而,似乎不可能在React Native中使用此功能 我的renderRow函数如下所示: renderRow={(rowData) => { return ( <TouchableHighlight onPress={() => this.props.onSelectNote(rowD

是否有办法更改ListView中每第二行的背景色

我认为使用if语句应该是可行的,该语句可以识别它是偶数行还是奇数行,并基于此选择样式。然而,似乎不可能在React Native中使用此功能

我的renderRow函数如下所示:

renderRow={(rowData) => {
          return (
        <TouchableHighlight
          onPress={() => this.props.onSelectNote(rowData)}
          style={styles.rowStyle}
          underlayColor="#9E7CE3"
        >
          <Text style={styles.rowText}>{rowData.title}</Text>
        </TouchableHighlight>              )
        }
      }
renderRow={(rowData)=>{
返回(
this.props.onSelectNote(rowData)}
style={style.rowStyle}
underlayColor=“#9E7CE3”
>
{rowData.title}
)
}
}

到目前为止,所有行都将根据rowStyle设置样式。如何才能对不同的行使用不同的样式?

您可以将ID传递给
rowData
,以了解要渲染的行是偶数行还是奇数行,然后对所有偶数行/奇数行使用自定义样式

比如:

renderRow={(rowData, sectionID, rowID, highlightRow) => {
    let evenRow = rowData.id % 2 == 0;
    return (
      <TouchableHighlight
        onPress={() => this.props.onSelectNote(rowData)}
        style={[styles.rowStyle, evenRow && styles.evenRowStyle}
        underlayColor="#9E7CE3"
      >
        <Text style={styles.rowText}>{rowData.title}</Text>
      </TouchableHighlight>
    );
  }
}
renderRow={(rowData,sectionID,rowID,highlightRow)=>{
设evenRow=rowData.id%2==0;
返回(
this.props.onSelectNote(rowData)}
style={[style.rowStyle,evenRow&&style.evenRowStyle}
underlayColor=“#9E7CE3”
>
{rowData.title}
);
}
}

您可以将ID传递给
行数据
,以了解要渲染的行是偶数行还是奇数行,然后对所有偶数行/奇数行使用自定义样式

比如:

renderRow={(rowData, sectionID, rowID, highlightRow) => {
    let evenRow = rowData.id % 2 == 0;
    return (
      <TouchableHighlight
        onPress={() => this.props.onSelectNote(rowData)}
        style={[styles.rowStyle, evenRow && styles.evenRowStyle}
        underlayColor="#9E7CE3"
      >
        <Text style={styles.rowText}>{rowData.title}</Text>
      </TouchableHighlight>
    );
  }
}
renderRow={(rowData,sectionID,rowID,highlightRow)=>{
设evenRow=rowData.id%2==0;
返回(
this.props.onSelectNote(rowData)}
style={[style.rowStyle,evenRow&&style.evenRowStyle}
underlayColor=“#9E7CE3”
>
{rowData.title}
);
}
}

谢谢您的回复。但是它不起作用。我将rowID记录到控制台,显然这些是1454594588447和1454594592183等数字。没有一个是偶数!这些是如何生成的?好的,我必须承认我没有测试过这一点,所以这是罪过……有没有办法让您将
rowData中的索引传递给同谋h同样的事情?我做了一个计数器,它的工作原理类似于索引,现在你的解决方案工作了,非常感谢!奇怪。每当我使用rowID时,我都会得到正常的递增ID(1,2,3..)。谢谢你的回复。但是它不起作用。我将rowID记录到控制台,显然这些是1454594588447和1454594592183等数字。没有一个是偶数!这些数字是如何生成的?好的,我必须承认我没有测试这一点,所以这是罪过……有没有一种方法可以让你在
rowData
中传递索引来完成测试同样的事情?我做了一个像索引一样工作的计数器,现在你的解决方案工作了,非常感谢!奇怪。每当我使用rowID时,我都会得到正常的递增ID(1,2,3..)。