Хотел бы что-то полезное написать, но фантазия не работает, а если и работает - то понимаешь, что это можно с легкостью воплотить в жизнь на VanillaJS.
VanillaJS === JavaScript; // true
TypeScript !== VanillaJS; // true
JSX !== VanillaJS; // true
export getRoutes = permissions => routes.filer(route => route.permission ? permissions.includes(permission) : true);
export default function SwitchWithRoutes({ routes, checkHasAccess }) {
return (
<Switch>
{routes.map((route, i) => {
if(checkHasAccess(route.permissions) {
return (
<Route
key={i}
exact={route.path === '/'}
path={route.path}
component={route.component}
/>);
}
return null;
})}
</Switch>
);
}
const mapStateToProps = state => ({
checkHasAccess: checkHasAccessSelector(state),
});
export default connect(mapStateToProps)(SwitchWithRoutes);
class MyClass {
state = { ... };
handler = () => { ... };
render() {
const some = 'some';
return <div>{some}</div>;
}
}
Если ты используешь стандартный create-react-app то у тебя итак все пишется на VanillaJS, реакт тут не причем вообще.
acc.message += (!i ? '': '\n') + el.message;
const result = {
status: 'approved',
message: [],
};
for (var i = 0; i < arr.length; i++) {
if (arr[i].status === 'approved') {
result.message.push(arr[i].message);
}
}
result.message.join('\n');