0
votes

Mise à jour de la composante réactive extérieure

J'ai un composant pour afficher des nouvelles quelque part dans la page. Vous pouvez évaluer des nouvelles (donnez-lui des étoiles).

J'ai un autre composant dans un autre endroit où certaines nouvelles sont affichées. Dans ce composant, vous pouvez également évaluer les nouvelles. Je tiens à mettre à jour Actualités CODE> Composant (RERender IT) après un vote dans code>. Y a-t-il un moyen de le faire? p>

Quelques pseudocode: P>

class SomeComponentWhereNewsAreDisplayed extends React.Component
{
    voteAndUpdateNewsComponent() {
         updateNewsComponent()
    }
    render() {
        return <div>
            ...
            <some functionality that allows to give a star to news onClick={this.voteAndUpdateNewsComponent}>
            ...
        </div>
    }
}

class News extends React.Component
{
    componentDidMount() {
        //..ajax request to get ratings, or taking it from localStorage, etc..
    }

    render() {
        return <div>
            {this.state.ratings.map(rating => { return <span>{rating.stars}</span>})
        </div>
    }
};


0 commentaires

3 Réponses :


0
votes

Bonjour Vous pouvez utiliser la gestion de l'état comme Redux ou le contexte pour résoudre ce problème.


0 commentaires

0
votes

En règle générale, si deux composants réagissants n'appartiennent pas à la même hiérarchie des composants, ils ne peuvent pas échanger de données. Il y a un certain nombre de hacks pour se déplacer, mais idéalement, vous voulez les mettre dans la même hiérarchie et échanger des accessoires et des rappels.

Si vous ne voulez pas faire cela, vous avez toujours des refuges à votre disposition pour tirer la direction de l'état de la hiérarchie: https://react-redux.js.org/api/connect


0 commentaires

0
votes

Vous n'avez pas besoin d'utiliser un conteneur d'état pour cela. Transférer une fonction de SomecomponentwherenewsaredisameDisplay à des nouvelles qui met à jour l'état de somecomponentwherenewsaredisamedisedisedis et est connecté au gestionnaire de clics de l'étoile de l'actualité. Cela provoque votre parent (somecomponentwherenewsaredisamed) et ses enfants de se répercuter.


0 commentaires