Я не могу заставить работать кнопку удаления на пользовательском компоненте с именем ActivityItem
.
Пользовательский компонент в ActivityItem. js:
const ActivityItem = props => {
return (
<View>
<Button title="Delete" onPress={props.onDelete} />
</View>
);
};
removeActivity
функция определены в действиях. js файл действий:
export const REMOVE_ACTIVITY = 'REMOVE_ACTIVITY';
export const removeActivity = id => {
return {type: REMOVE_ACTIVITY, id: id};
};
И мои действия. js файл редуктора:
const initialState = {
allActivities: ACTIVITIES,
userActivities: ACTIVITIES.filter(activity => activity.userId === 'u1')
};
export default (state = initialState, action) => {
REMOVE_ACTIVITY:
const updatedUserActivities = state.userActivities.filter((activity) => activity.id !== action.id);
return {
...state,
userActivities: updatedUserActivities
};
return state;
};
ACTIVITIES
- это список Activity
элементов которые содержат userId
и уникальные свойства id
.
Наконец, экран, на котором я визуализирую FlatList
:
const MyScreen = props => {
const myActivities = useSelector(state => state.activities.userActivities);
const dispatch = useDispatch();
return (
<FlatList
data={myActivities}
keyExtractor={item => item.id}
renderItem={itemData => (
<ActivityItem
onDelete={() => {
dispatch(removeActivity(itemData.item.id));
}}
/>
)}
/>
);
};
Может ли кто-нибудь сказать мне, что я здесь делаю не так ?