Cannot use `$if` together with setting `$state` from within `$lifecycle`
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 35/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Stack technique
- javascript
- Domaine
- frontend
Piste de recherche
Reproduisez les trois configurations de scène de l’issue, en comparant $if, $lifecycle post-load et $state.set. Commencez par suivre la gestion du cycle de vie, de l’état et des comportements par le framework, et examinez l’issue associée #41 ; le travail sera terminé lorsque la définition de path pendant post-load mettra correctement à jour les nœuds contrôlés par $if.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
In short, I can't use $if together with setting $state from within post-load.
This works:
FamousFramework.scene('ildar:page-controller', {
behaviors: {
// '#home': {
// '$if': function(path) { return path === '/' }
// },
// '#blog': {
// '$if': function(path) { return path === '/blog' }
// },
// '#about': {
// '$if': function(path) { return path === '/about' }
// },
'.page': {
'size': [200, 200],
'align': [0.5, 0.5],
'mount-point': [0.5, 0.5],
'style': {
'background': 'whitesmoke'
}
}
},
events: {
'$lifecycle': {
'post-load': function($state) {
console.log('post-load');
$state.set('path', '/');
}
},
'.page': {
'click': function($state) {
console.log('WORKS');
$state.set('path', '/blog');
}
}
},
states: {
path: null,
},
tree: `
<node id="home" class="page"> <div> HOME </div> </node>
<node id="blog" class="page"> <div> BLOG </div> </node>
<node id="about" class="page"> <div> ABOUT </div> </node>
`
});
This also works:
FamousFramework.scene('ildar:page-controller', {
behaviors: {
'#home': {
'$if': function(path) { return path === '/' }
},
'#blog': {
'$if': function(path) { return path === '/blog' }
},
'#about': {
'$if': function(path) { return path === '/about' }
},
'.page': {
'size': [200, 200],
'align': [0.5, 0.5],
'mount-point': [0.5, 0.5],
'style': {
'background': 'whitesmoke'
}
}
},
events: {
'$lifecycle': {
'post-load': function($state) {
console.log('post-load');
//
// If $state isn't set from here, the code works.
//
// $state.set('path', '/');
}
},
'.page': {
'click': function($state) {
console.log('WORKS');
$state.set('path', '/blog');
}
}
},
states: {
path: '/',
},
tree: `
<node id="home" class="page"> <div> HOME </div> </node>
<node id="blog" class="page"> <div> BLOG </div> </node>
<node id="about" class="page"> <div> ABOUT </div> </node>
`
});
But this doesn't work:
FamousFramework.scene('ildar:page-controller', {
behaviors: {
'#home': {
'$if': function(path) { return path === '/' }
},
'#blog': {
'$if': function(path) { return path === '/blog' }
},
'#about': {
'$if': function(path) { return path === '/about' }
},
'.page': {
'size': [200, 200],
'align': [0.5, 0.5],
'mount-point': [0.5, 0.5],
'style': {
'background': 'whitesmoke'
}
}
},
events: {
'$lifecycle': {
'post-load': function($state) {
console.log('post-load');
$state.set('path', '/');
}
},
'.page': {
'click': function($state) {
console.log('WORKS');
$state.set('path', '/blog');
}
}
},
states: {
path: null,
},
tree: `
<node id="home" class="page"> <div> HOME </div> </node>
<node id="blog" class="page"> <div> BLOG </div> </node>
<node id="about" class="page"> <div> ABOUT </div> </node>
`
});
Could be related to #41
- Langage dominant
- JavaScript
- Étoiles
- 394
- Forks
- 62
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de Famous/framework
-
$repeat does not repeatOuverte
Difficulté 3/5 1-2 jours Accessibilité débutants 42/100
-
Difficulté 4/5 3-5 jours Accessibilité débutants 20/100
-
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
-
Improve Scroll ViewOuverte
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
Toutes les issues de Famous/framework
Issues similaires
-
Bump Firebase JS SDK (12.19.0 → 13.0.0)Peut-être pris @SelaseKay l’a pris aujourd’hui. OuverteNeeds Attention type: enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
invertase/react-native-firebase#9364 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 67/100
tchiotludo/akhq#3307 · 1 réaction ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 1-3 heures Accessibilité débutants 90/100
DietrichGebert/ponytail#1063 ·
Les mainteneurs répondent en général sous 3 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
zen-browser/desktop#15809 · 1 réaction ·
Les mainteneurs répondent en général sous 1 jour
-
enhancement
Difficulté 1/5 Moins d'une heure Accessibilité débutants 90/100