【发布时间】:2020-12-30 14:32:24
【问题描述】:
屏幕上的输出没有按预期变化 我的代码如下:
import React, { useState } from "react";
import { StyleSheet, FlatList, View } from "react-native";
import ListItem from "../components/ListItem";
import colors from "../config/colors";
import Screen from "../components/Screen";
import ListItemSeperator from "../components/ListItemSeperator";
import ListItemDeleteAction from "../components/ListItemDeleteAction";
const InitialMessages = [
{
id: 1,
title: "T1",
description: "D1",
image: require("../assets/Images/mosh.jpg"),
},
{
id: 2,
title: "T2",
description: "D2",
image: require("../assets/Images/mosh.jpg"),
},
{
id: 3,
title: "T3",
description: "D3",
image: require("../assets/Images/mosh.jpg"),
},
];
function MessagesScreen(props) {
const [messages, UpdateMessageArray] = useState(InitialMessages);
const handlerDelete = (message) => {
console.log("Came to Delete");
const newArr = messages.filter((m) => m.id !== message.id);
UpdateMessageArray(newArr);
};
return (
<Screen>
<FlatList
data={InitialMessages}
keyExtractor={(message) => message.id.toString()}
renderItem={({ item }) => (
<ListItem
title={item.title}
subTitle={item.description}
image={item.image}
onPress={() => console.log("MESSAGE PRESSED", item)}
renderRightActions={() => (
<ListItemDeleteAction onPress={() => handlerDelete(item)} />
)}
/>
)}
ItemSeparatorComponent={ListItemSeperator}
/>
</Screen>
);
}
const styles = StyleSheet.create({});
export default MessagesScreen;
在控制台上..它输出为“CAME TO DELETE”,并且我还在每次删除后记录了 initialMessages 数组...我看到它得到了更新,但没有在屏幕上显示。 任何想法为什么它不起作用??
【问题讨论】:
标签: javascript reactjs react-native react-hooks use-state