How to update a web3 provider in reactjs application?

Viewed 258

I have a reactjs application using web3 where I have a provider set in a context via Web3ReactProvider

<Web3ReactProvider getLibrary={getLibrary}>
 <MyCoolApplication />
</Web3ReactProvider>

my users also can switch between the networks, so I'd like to update web3's provider based on a user's choice

so this is what I am doing to have such a functionality:

const getLibrary = useCallback(() => {
 let provider = ''

 switch (web3Provider.selectedProvider) {
  case 'network1':
    provider = Web3.givenProvider
    break
  case 'network2':
    provider = 'bla-bla-bla-1'
    break
  case 'network3':
    provider = 'bla-bla-bla-3'
    break
  default:
    provider = Web3.givenProvider
    break
 }

 return new Web3(provider)
}, [web3Provider])

looks like it has to work properly, but when I am trying to get any token's data via web3React.library.eth.Contract... and etc

there is nothing responded at all :(

so the question is whether I can update a provider like that or should I do anything else?

Thank you

0 Answers
Related