В моем коде у меня есть этот метод с именем addToArray, объявленный в моем файле приложения. js и переданный для реагирования на контекст через состояние следующим образом: Приложение. js
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
// init values
array: [],
...
removeFromArray: () => this.removeFromArray(),
...
}
}
fetchArray = async () => {
...
this.setState({ array: result });
} catch (e) {
alert('Error occured and nothing could be fetched');
}
}
}
componentDidMount() {
this.fetchArray();
...
}
...
removeFromArray = (id) => {
...
alert(id);
}
render() {
// variables to init contexts with
const {
array,
removeFromArray
} = this.state;
return (
<GlobalContext.Provider value={{
array,
removeFromArray
}} >
<Routes />
</GlobalContext.Provider>
);
}
}
Контекст объявляется так: Контекст. js
export const GlobalContext = React.createContext({
array: [],
removeFromArray: () => { }
});
и называется так:
const btn = (props) => {
const GlobalCtx = useContext(GlobalContext);
return(
<View style={card.editOpacity}>
<Icon
name="minus-circle"
type='font-awesome'
color='red'
onPress={() => {
GlobalCtx.removeFromArray(props.id)
}} />
<Text style={card.header}>{props.title}</Text>
</View>
);
по некоторым причинам это не так работает, но я думаю, что это может иметь отношение к параметрам и способу передачи в контекст.