user
06/28/2019, 3:11 PMuser
06/28/2019, 4:41 PMjs
export function Layout(props) {
const [isSidebarExpanded, setSideBarExpanded] = useState(true);
function handleRouteChange(url) {
setSideBarExpanded(true);
}
useEffect(function routeChangeComplete() {
Router.events.on('routeChangeComplete', handleRouteChange);
return () => Router.events.off('routeChangeComplete', handleRouteChange);
},[]);
// ...
Here's the same in coconut with evil, evil classes:
haxe
class Layout extends View {
@:state isSidebarExpanded:Bool = true;
function handleRouteChange(url) {
isSidebarExpanded = true;
}
function viewDidMount() {
Router.events.on('routeChangeComplete', handleRouteChange);
beforeUnmounting(() -> Router.events.off('routeChangeComplete', handleRouteChange));
});
// ...
This could practically look exactly the same in React, if they were to work a bit on the life cycle eventsuser
06/28/2019, 4:47 PMjs
class Layout extends Component {
state = { isSidebarExpanded: true };
handleRouteChange = (url) => this.setState({ isSidebarExpanded: true });
componentDidMount() {
Router.events.on('routeChangeComplete', handleRouteChange);
this.beforeUnmounting(() -> Router.events.off('routeChangeComplete', this.handleRouteChange));
}
// ...