javascript - react-native 中的重复组件
问题描述
我开发了一个 api,它为使用我的 React Native 应用程序的每个用户返回一些数据。这个 API 返回一个对象数组,我可以console.log()
看到它们。
我要做的是在特定的(元素)中显示此数组中的每个对象
listeFinale
在该州被宣布为empty array
liste
是 API 返回的对象数组
fetch
如果成功则执行下面的代码
this.state.listeFinale = this.state.liste.map(n => (
<Text key={n.Id}>
{n.Nume}
{n.Observatii}
</Text>
)
)
然后,在render()
我的方法中:
return (
<View style={styles.container}>
<Text>Lists for user id {this.state.userId}</Text>
{this.state.listeFinale}
</View>
);
应用程序中没有显示任何内容,我看到的只是文本和用户 ID。我是 React Native 的新手,我真的可以从你们那里得到一些建议。
先感谢您!
解决方案
您可以在渲染方法中制作地图循环。
在 fetch 使用后重新分配状态setState()
(如果您不使用useState()
钩子)
所以你会有类似的东西
state = {
liste = []
}
componentLifeCycle () {// in case you don't use hooks
fetch().then((response) => { // or async await
this.setState({liste : response})
}
}
return (
<View style={styles.container}>
<Text>Lists for user id {this.state.userId}</Text>
{this.state.liste.length > 0 && this.state.liste.map(n => (
<Text key={n.Id}>
{n.Nume}
{n.Observatii}
</Text>
)}
</View>
);
此外,我建议您english
在代码中定义变量和其他名称时使用以提高可读性。你永远不知道谁最终会调试或处理你的代码。
另一个建议是使用 Redux 将您的“获取”数据存储在您的应用程序状态中。并从那里获取它,而不是在组件内部进行 fetch。组件应该只从状态渲染数据,而不是直接与 API 交互。保持它们干净和简单。
推荐阅读
- java - Java fizzBuzz(来自 CodingBat-Array2 的练习)
- tkinter - 如何从 Combobox 获取值以写入文本框
- php - 选择框数据数组
- javascript - 承诺即使在解决后仍处于未决状态
- python - 使用 torch.save 和 torch.load 继续培训 - 关键错误消息
- ios - 如何使用 for 循环通过 BLE 发送数据
- ios - 如何使用“XCODE”中的 Storyboard UI 对标题文本设置约束,使其大小相对于超级视图的大小?
- r - 无法在 Windows 10 上加载 rjag
- javascript - 在纯 css 中从左到右显示文本的效果
- ruby-on-rails - 是否可以在 Rails 6 中使用 .js.erb 文件?