2
respostas

Como utilizar PubSub-JS em Arquivos diferentes

estou tendo problemas em pegar dados vindos de outros arquivos com pubsub-js, eu publiquei essa dúvida la no stackoverflow, se puderem ajudar agradeço.

link la no Stack: https://pt.stackoverflow.com/questions/323971/como-utilizar-pubsub-js-em-arquivos-diferentes

2 respostas

Fala Rodrigo, tudo bom?

Da uma olhada nesse codepen: https://codepen.io/omariosouto/full/aLeYPQ/

O seu código que faz o subscribe, roda antes de você fazer o publish?

No arquivo cliente.js tem um metodo que abre um canal com pubsub.publish e guarda um valor e redireciona para página conta.js que lá tenta pegar esse valor com pubsub.subscribe.

primeiro é feito o pubsub.publish, veja o código:

Cliente.js

import PubSub from 'pubsub-js';
export default class Cliente extends Component {
  pegaValor() {
    console.log(PubSub.publish('cliente-p', [{nome:'rodrigo'}]));
    window.location.href = "http://localhost:3000/conta";
  }

render() {
    return (
       <button type="button" onClick={this.pegaValor} className="btn btn-secondary">Conta</button>
);
}

Conta.js

import PubSub from 'pubsub-js';

export default class Conta extends Component {

  constructor() {
    super();
  }

  componentWillMount() {

    PubSub.subscribe('cliente-p', function(topico, valor){
      console.log('Valores: ', valor);
    })
  }
}

Obs: se eu utilizar Pubsub sendo no mesmo arquivo, funciona normalmente, agora em arquivos diferentes como no caso acima, não está funcionando.