Задать вопрос
@shema1

HOC Higher-Order Components как передать параметры?

вот моя компонента App
import React, { Component } from "react";
import City from "./City";
import withDataLoader from "./withDataLoader";

const App = () => {
  const MyCity = withDataLoader(
     City,
    "https://5e5cf5eb97d2ea0014796f01.mockapi.io/api/v1/cities/1"
   );

  return (
    <div className="page">
      <MyCity />
    </div>
  );
};
export default App;


тут моя Higher-Order Components
import React from "react";
import Spinner from "./Spiner";

const withDataLoader = (url, Component) => {
   class Container extends React.Component {

    state = "";

    componentDidMount() {
      this.get();
    }

    get = () => {
      fetch(url)
        .then((response) => response.json())
        .then((data) => this.setState(data));
    };

    render() {
      return this.state === "" ? <Spinner /> : <Component data={this.state} />;
    }
  };
  return Container
};

export default withDataLoader;


я передаю параметры в HOC так
withDataLoader(url, City)
но в документации я видел еще такую запись
withDataLoader(url)(City) https://ru.reactjs.org/docs/higher-order-component...
Как сделать так чтобы в хок можно было передать параметры так withDataLoader(url)(City)?
  • Вопрос задан
  • 158 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы