- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我从第一个组件导航到 FooItems 页面,并将 props 传递给导航。
showFooItemsPage = () => {
this.props.navigation.navigate('FooItemsComponent', {
fooItems: this.props.fooItems});
};
在我的 FooItemsComponents 上,我有一个带有 renderItems 函数的 Flatlist,并且它正在工作。但是,我想对 Flatlist 项目列表进行更改,然后我想单击 Flatlist 组件标题中的“保存”。
我现在遇到的主要问题是将 Prop 发送到我的 Flatlist 的标题组件。 Prop 未定义,我不知道如何从我的 FooItemsComponent 或当我在页面之间导航时向其发送 Prop ?
这是我的 FooItemsComponent 的一些片段:
class Header extends Component {
constructor(props) {
super(props);
}
async componentDidMount() {
//call some reducer action
}
save = items => {
this.props.saveItems(items);
this.props.navigation.navigate("previousComponent");
}
render() {
const {navigation, loading } = this.props;
return (
<View>
<View style={styles.header}>
<TouchableOpacity onPress={this.save}>
<Text style={styles.saveText}>Save</Text>
</TouchableOpacity>
</View>
<View
style={{
borderTopWidth: 1,
borderTopColor: Colors.grey,
height: 1,
}}>
</View>
</View>
);
}
}
export class FooItemsComponent extends Component {
constructor(props) {
super(props);
}
async componentDidMount() {
//some reducer action
}
renderItem = item => {
if (item.load) {
return <ActivityIndicator color={Colors.activityColor} size="small" />;
} else {
return (
<View>
<FooItems
{...item}
navigation={this.props.navigation}
showParticularItems={true}
/>
</View>
); }
};
render() {
const { fooItems, navigation, loading, props} = this.props;
if (!fooItems) fooItems = [];
return (
<View style={styles.container}>
<FlatList
keyExtractor={(item, index) => `key-${index}`}
data={fooItems}
renderItem={item => this.renderItem(fooItems.item)}
ItemSeparatorComponent={Separator}
ListHeaderComponent={Header}
ListFooterComponent={loading ? LoadingFooter : Separator}
/>
</View>
);
}
}
最佳答案
将您的组件作为 React 元素传递:
<FlatList
keyExtractor={(item, index) => `key-${index}`}
data={fooItems}
renderItem={item => this.renderItem(fooItems.item)}
ItemSeparatorComponent={Separator}
ListHeaderComponent={<Header yourProps={'blabla title'}/>}
ListFooterComponent={loading ? LoadingFooter : Separator}
/>
并在Header
组件中使用this.props.yourProps
关于javascript - 如何将 props 传递给 ListHeaderComponent?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58750945/
我有一个水平的 Flatlist,在它的正上方我想添加一个自定义标题。我可以选择将 Flatlist 和自定义标题包装在 ScrollView 中 - 根据 RN 0.61 这不是一个好习惯 Virt
所以我从第一个组件导航到 FooItems 页面,并将 props 传递给导航。 showFooItemsPage = () => { this.props.navigatio
在 React-Native 中,将 FlatList 与 ListHeaderComponent 一起使用让我相信 ListHeaderComponent 中的 shouldComponenupda
我正在使用不支持 FlatList 的 ListEmptyComponent 的 React-Native 版本 0.43.0。因此,当列表为空时,我使用 ListHeaderComponent 呈现
我有一个故意比屏幕宽度更宽的 FlatList。 列表垂直滚动以查看每一行,并位于水平 ScrollView 中以访问屏幕外的项目。 ListHeaderComponent 属性基本上是一个 x 轴标
我是一名优秀的程序员,十分优秀!