You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The issue is that when my app reads from the contract it stores data in react state and it is
also displayed but when i refresh the page the value on the front end that is shown
for the states reverts to the default values but redux states still has the updated values
Redux Store
import { createStore } from "redux";
const redux = require('redux');
const store = createStore(TaskReducer);
const TaskSubscriber = () =>{}
export default store;
React Part
import Web3 from "web3";
import Auction from './truffle_abis/Auction.json';
import { Component} from 'react';
import { connect } from "react-redux";
import ReduxMain from './Components/Redux/ReduxMain';
const web3 = window.web3
const account = await web3.eth.getAccounts(); // getting account that is connected
this.setState({connected_account:account}); // set current metamask account to state
this.props.Redux_setConnectedAccount("setConnectedAccount",account); // save to Redux
//Ganache Network ID
const networkID = await web3.eth.net.getId();
//Loading Contract
const ContractData = Auction.networks[networkID];
if(ContractData){
const cont_addr = new web3.eth.Contract(Auction.abi,ContractData.address);
this.setState(this.state.auction_contract=cont_addr); // get contract and store it to state
this.props.Redux_setContract("setAuctionContract",cont_addr); // save to Redux
this.GetAuctionOwner(); // get the address of the account that deployed the contract
}
else
{
console.log("NoData");
}
}
GetAuctionOwner = async ()=>
{
const addr = await this.state.auction_contract.methods.GetOwner().call(); // get address from contract
this.setState({auction_owner:addr}); // set owner address to state
this.props.Redux_setOwner("setAuctionOwner",addr); // save to redux
const mapStatetoProps=(props)=>{
return{
owner_acc_store : props.auction_owner, // get state from redux
connected_acc_store:props.connected_account
}
}
const mapPropstoState =(dispatch)=>{
return{
Redux_setOwner :(type,obj)=>dispatch({type,obj}), // set state in redux
Redux_setContract :(type,obj)=>dispatch({type,obj}), // set state in redux
Redux_setConnectedAccount :(type,obj)=>dispatch({type,obj}) // set state in redux
}
}
export default connect(mapStatetoProps,mapPropstoState)(Block);
The text was updated successfully, but these errors were encountered:
The issue is that when my app reads from the contract it stores data in react state and it is
also displayed but when i refresh the page the value on the front end that is shown
for the states reverts to the default values but redux states still has the updated values
Redux Store
import { createStore } from "redux";
const redux = require('redux');
const initialState = {
auction_owner:"0x99",
auction_contract:{},
connected_account:"0x11"
}
const TaskReducer = (state = initialState,action)=>
{
if(action.type==="setAuctionOwner"){
};
const store = createStore(TaskReducer);
const TaskSubscriber = () =>{}
export default store;
React Part
import Web3 from "web3";
import Auction from './truffle_abis/Auction.json';
import { Component} from 'react';
import { connect } from "react-redux";
import ReduxMain from './Components/Redux/ReduxMain';
class Block extends Component{
async UNSAFE_componentWillMount(){
await this.LoadWeb3();
await this.LoadBlockChain();
}
LoadWeb3 = async()=>{
if(window.ethereum)
{
window.web3 = new Web3(window.ethereum);
await window.ethereum.enable();
}
else if(window.web3)
{
window.web3 = new Web3 (window.web3.currentProvider)
}
else{
window.alert('No Wallet Detected');
}
}
LoadBlockChain=async()=>{
}
GetAuctionOwner = async ()=>
{
}
constructor(props){
super(props)
this.state={
auction_owner : '0x00',
auction_contract:{},
connected_account:'0x00'
}
render(){
return(
);
}
}
const mapStatetoProps=(props)=>{
return{
owner_acc_store : props.auction_owner, // get state from redux
connected_acc_store:props.connected_account
}
}
const mapPropstoState =(dispatch)=>{
return{
Redux_setOwner :(type,obj)=>dispatch({type,obj}), // set state in redux
Redux_setContract :(type,obj)=>dispatch({type,obj}), // set state in redux
Redux_setConnectedAccount :(type,obj)=>dispatch({type,obj}) // set state in redux
}
}
export default connect(mapStatetoProps,mapPropstoState)(Block);
The text was updated successfully, but these errors were encountered: