如何在react本机应用程序的render函数中包含Javascript代码?

Dip*_*eja 8 react-native

我是一个React和React原生菜鸟,所以它可能是一个非常愚蠢的问题,但我如何在渲染函数中使用'for loop'来包含我的组件?这就是我做的

render() {
  return (
    <View style={styles.container}>
      { for (let i=0; i<20; i++) 
        {
           //This is my component
           <CounterButton />
        }
      }
    </View>
  );
}
Run Code Online (Sandbox Code Playgroud)

但是它抛出了一个错误,然后有人建议在代码中包含代码并在render函数中调用它,所以我做了

createButtons() {
  for (let i =0; i<20; i++){
    <CounterButton />;
  }
}

render() {
  return (
    <View style={styles.container}>
      {this.createButtons()}

    </View>
  );
}
Run Code Online (Sandbox Code Playgroud)

现在我没有看到错误,但它只是一个空白的屏幕.我知道你可以访问道具但是渲染函数应该主要只包含JSX代码吗?提前致谢.

Way*_*neC 2

Jsx 可以包含返回组件或组件数组的表达式。在您的情况下,您需要返回组件数组的东西。

坚持使用 for 循环:

createButtons() {
  let buttons = [];
  for (let i=0; i<20; i++){
    buttons.push(<CounterButton />);
  }
  return buttons;
}
Run Code Online (Sandbox Code Playgroud)

如果你想在 jsx 中执行此操作,类似这样的操作应该有效:

render() {
  return (
    <View style={styles.container}>
      {[...Array(20).keys()].map(<CounterButton />)}    
    </View>
  );
}
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

2206 次

最近记录:

8 年,3 月 前