cześć, jestem w trakcie nauki Reacta, uczę się z książki w której jest przedstawiony taki kod:
import React from "react";
function ProFeature(FeatureComponent) {
return function (props) {
if (props.pro) {
let { pro, ...childProps } = props;
return <FeatureComponent {...childProps} />;
} else {
return (
<h5 className="bg-danger text-white text-center">
To jest mozliwosc tylko dla specow.
</h5>
);
}
};
}
export default ProFeature;
W app.js
const ProtectedMessage = ProFeature(Message);
<div className="col-3">
<ProtectedMessage
theme="primary"
message="Wiadomosc chroniona"
pro={true}
/>
</div>
Trochę mi zajęło czasu aby zrozumieć na czym polega funkcjonalność takiego komponentu, bądź opakowania. Równie dobrze można zabezpieczyć renderowanie komponentu przez taki zapis kodu:
{user.isLoggedIn && <Message message="Wiadomosc chroniona" />}
Mam tu na myśli store, który przechowa wartość isLoggedIn. Chciałbym się zapytać: czy często są stosowane takie komponenty? ps. książka to React 16 - Adama Freemana