javascript - 在 JSX 中映射第二个数组

标签 javascript react-native jsx

我目前正在映射一些数据,以便在 React Native 的 JSX 状态栏上呈现 4 个点。但是,我有第二个数组,我想映射过来,这样每个日期都会出现在我有评论的地方 need dates to go here ,这样日期就可以了在呈现的每个点下方。

我在评论下方映射它们,但我需要它们作为第一张 map 的一部分在上面。有办法解决这个问题吗?

const StatusBar = ({ projectData }) => {

  const statusBarPositions = [1, 2, 3];
  const currentStatusBarPosition = () => {
    let position;

    switch (projectData.get('state')) {
      case 'Project 1':
        position = 1;

        break;
      case 'Project 2':
        position = 2;
        break;
      case 'Project 3':
        position = 3;
        break;
      default:
        position = 0;
    }

    return position;
  };

  const projectDates = ['12/1', '3/1', '6/1', '9/1']

  return (
    <View>
      <View style={ styles.statusBarContainer }>
        <View style={ styles.progressDotFirst } />
        {
          statusBarPositions.map((statusBarPosition) => {
            return (
              <View key={ statePosition } style={ styles.statusBarLineContainer }>
                <View style={ (currentStatusBarPosition() >= statusBarPosition) ? [styles.statusBarLine, styles.statusBarActive] : styles.statusBarLine } />
                <View style={ (currentStatusBarPosition() >= statusBarPosition) ? [styles.statusBarDot, styles.statusBarActive] : styles.statusBarDot } />
              </View>
              <View>
                <Text>{ ***need dates to go here*** }</Text>
              </View>
            );
          })
        }
      </View>
      <View>
        {
          projectDates.map((date) => {
            return (
              <Text>{ date }</Text>
            )
          })

        }
      </View>
    </View>
  );
};

StatusBar.propTypes = {
  projectData: PropTypes.instanceOf(Object)
};

export default statusBar;

最佳答案

array.map将数组索引作为第二个参数传递。如果两个数组在索引方面相互对应,那么您可以使用它来呈现日期(注意 statusBarPositions.map((statusBarPosition, i)) 中的索引 i :

<View style={ styles.progressDotFirst } />
{
    statusBarPositions.map((statusBarPosition, i) => {
    return (
        <View key={ statePosition } style={ styles.statusBarLineContainer }>
        <View style={ (currentStatusBarPosition() >= statusBarPosition) ? [styles.statusBarLine, styles.statusBarActive] : styles.statusBarLine } />
        <View style={ (currentStatusBarPosition() >= statusBarPosition) ? [styles.statusBarDot, styles.statusBarActive] : styles.statusBarDot } />
        </View>
        <View>
        <Text>{ projectDates[i] }</Text>
        </View>
    );
    })
}
</View>

关于javascript - 在 JSX 中映射第二个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52940328/

相关文章:

reactjs - 状态更改时 react className 不更新

javascript - 在同一页面上使用相同的 ReactJS 表单组件

javascript - JavaScript 中的函数值

android - 在 React Native 中添加分享操作

android - 呃!运行 npm start 时代码 ELIFECYCLE

react-native - React Native panResponder onRelease 事件窃取可触摸不透明度 onpress 事件

javascript - JavaScript 是如何以如此精确的方式打印 0.1 的呢?

javascript - 传递一些参数时出错

javascript - 在 Bootstrap 4 中使最右边的列固定位置

css - 如何使用类对象在 Reactjs 中设置功能性无状态组件的样式