【发布时间】:2020-03-11 12:03:39
【问题描述】:
我对本机和 redux 做出反应还很陌生,并试图使用 redux 从 JSON 文件中的平面列表中呈现库标题,但我的 FlatList 组件不会在屏幕上呈现任何内容。
这是我的代码:
LibraryList.js
import React, { Component } from "react";
import { FlatList } from "react-native";
import { connect } from "react-redux";
import ListItem from "./ListItem";
class LibraryList extends Component {
renderItem(library) {
return <ListItem library={library} />;
}
render() {
return (
<FlatList
data={this.props.libraries}
renderItem={this.renderItem}
keyExtractor={library => library.id}
/>
);
}
}
const mapStateToProps = state => {
return { libraries: state.libraries };
};
export default connect(mapStateToProps)(LibraryList);
ListItem.js
import React, { Component } from "react";
import { Text } from "react-native";
import { CardSection } from "./common";
class ListItem extends Component {
render() {
return (
<CardSection>
<Text>{this.props.library.title}</Text>
</CardSection>
);
}
}
export default ListItem;
App.js
import React from "react";
import { View } from "react-native";
import { Provider } from "react-redux";
import { createStore } from "redux";
import reducers from "./reducers";
import { Header } from "./components/common";
import LibraryList from "./components/LibraryList";
const App = () => {
return (
<Provider store={createStore(reducers)}>
<View>
<Header headerText="Tech Stack" />
<LibraryList />
</View>
</Provider>
);
};
export default App;
JSON 文件是这样的
[
{
"id": '' ,
"title": '' ,
"description":''
},
{
"id":'' ,
"title":'' ,
"description":''
}
]
我阅读了一些解决方案,建议将 renderItem 函数更改为类似的内容
renderItem = ({ library }) => <ListItem library={library} />
还是不行。有人可以帮我解决这个问题吗?
谢谢。
【问题讨论】:
-
尝试
console.logthis.props.libraries在你的LibraryList.js中的值
标签: javascript react-native redux react-redux