Я использую реагирующие перехватчики, и я удалил другие функции, не связанные с функцией, которую я собираюсь вызвать. Функции приложения отображаются
function App() {
const memoizedCallback = React.useCallback(() => {
console.log("Click happened");
}, []);
return (
<div className="App">
<ReactMapGl
{...viewport}
mapboxApiAccessToken={accesstoken}
onViewportChange={viewport => {
setviewport(viewport);
}}
>
{details.map(details => (
<Marker
key={details.name}
latitude={details.lat}
longitude={details.long}
>
<button
class="marker-btn"
onClick={e => {
e.preventDefault();
useselectedpark(details);
}}
>
<img src={icon} alt="icon" className="navbar-brand" />
</button>
</Marker>
))}
{selectedpark ? (
<Popup
latitude={selectedpark.lat}
longitude={selectedpark.long}
onClose={() => {
useselectedpark(null);
}}
>
<div>
<Card style={{ width: "18rem" }}>
<Card.Body>
<Card.Title>{selectedpark.name}</Card.Title>
<Card.Text>{selectedpark.postalcode}</Card.Text>
<div>
<Button variant="primary" onClick={memoizedCallback}>
Visit Gallery
</Button>
</div>
</Card.Body>
</Card>
</div>
</Popup>
) : null}
{console.log("in render", details)}
</ReactMapGl>
</div>
);
}
export default App;
. Я собираюсь вызвать функцию memoizedCallback
. Функция вызывается в onClick
кнопки на карте.
Последовательность событий такова. Появится всплывающее окно, и у пользователя есть возможность нажать на кнопку на карте, которая появляется.
Проблема: В настоящее время, когда кнопка нажата прямо сейчас, функция memoizedCallback
не вызывается.
Почему так, что я здесь упустил?