Кажется, что useLocation()
модуля «response-router-dom» не имеет никакого состояния, когда вы впервые попадаете на страницу.
Возможно, вам нужно сначала установить его с данными из https://api.unsplash.com/photos${window.location.pathname}?client_id=your_clt_id
и после этого вы можете открыть модальное окно с помощью photo.urls.small
Так что вам нужно заполнить состояние вашего приложения до открытия модального окна, я думаю.
В любом случае сообщение об ошибке
Warning: Can't perform a React state update on an unmounted component.
This is a no-op, but it indicates a memory leak in your application.
To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method.
in App (at src/index.js:9)
in StrictMode (at src/index.js:8)
Но я не думаю, что это утечка памяти, а скорее всего, как я сказал выше, что вы открываете модальное окно до того, как приложение загрузится должным образом (ie состояния заполнены)
ОБНОВЛЕНИЕ
Возможно, возможным решением является создание синглтона вашего компонента приложения, а затем использование этого синглтона для извлечения фотографии из instance.state.photos вместо выбора the location.state.
В любом случае я не люблю синглтоны, и React мне тоже не нравится! ИМХО, это кажется излишним для такого приложения, как ваше.
Я также решил изучить codeandbox и обнаружил, что вы можете форкнуть его на github. Вот Это Да! Поэтому я сделал репо на своем github, чтобы лучше объяснить, о чем я говорю!
Я думаю, что этот коммит достаточно ясен
Я удалил репо, извините