Как передать массив через собственный контекст

#reactjs #react-native #react-redux #react-hooks #react-context

Вопрос:

Привет , дорогой, спасибо, что ответили на мой вопрос, я пытаюсь передать массив из одного компонента в другой, используя контекст react-native ниже, это моя попытка, но она не работает для массивов

 import React from 'react';


var context = {
    playlist: null, //like I want to make this value a array
    setPlaylist: (songID: string) => {

    }
}

export var playlistContext = React.createContext(context);
 

Мой файл App.tsx

 const [playlist, setPlaylist] = useState<string | null>(null);

<playlistContext.Provider value={{
    playlist,
    setPlaylist: (songID: string) => setPlaylist(songID),
}}>
    <Navigation colorScheme={colorScheme} />
    <StatusBar />
    <PlayerWidget />
</playlistContext.Provider>
 

Комментарии:

1. Каков актуальный вопрос для этого поста?

2. Похоже, вы можете обновить playlist состояние с помощью некоторых данных массива, и они будут переданы в значении контекста. Есть ли где-то проблема или вопрос, скрытый в вашем посте?

Ответ №1:

Вот ответ, реформировав API контекста playlistContext.tsx, как показано ниже:

 import React from 'react';


var context = {
    playlist: [],
    setPlaylist: (songID: string[]) => {

    }

}

export var playlistContext = React.createContext(context);
 

Затем я сделал это в своем приложении.tsx, поэтому должен использовать его в поставщике

 const [playlist, setPlaylist] = useState<string | string[]>([]);
 <playlistContext.Provider value={{
                    playlist,
                    setPlaylist: (songID: string[]) => setPlaylist(songID),

                  }}>

                    <Navigation colorScheme={colorScheme} />
                    <StatusBar />
                    <PlayerWidget />
                  </playlistContext.Provider>