Я пытаюсь обновить состояние в componentdidUpdate и для этого хочу вызвать функцию, но консоль показывает ошибку типа Uncaught (in promise) TypeError: this.props.updateMarketCap is not a function
Я импортировал эту функцию в мой файл .. Ниже приведен пример:
import { fetchMarketCap } from '../Actions/Marketcap';
import { updateMarketCap } from '../Actions/Marketcap';
componentDidMount(){
// setInterval(this.props.fetchMarketCap(), 3000);
this.props.fetchMarketCap();
this.interval = setInterval(() => {
this.props.fetchMarketCap();
}, 20000);
}
componentDidUpdate(prevProps, prevState){
const prev = prevProps.marketcap.map((coin, i) => (
<tr key={this.props.marketcap[i].CoinInfo.Id}>
<td className="crypt-up"><b>{this.props.marketcap[i].DISPLAY.USD.MKTCAP}</b></td>
<td className={coin.DISPLAY.USD.PRICE < this.props.marketcap[i].DISPLAY.USD.PRICE ? 'crypt-up' : (coin.DISPLAY.USD.PRICE > this.props.marketcap[i].DISPLAY.USD.PRICE ? 'crypt-down' : 'equal')}>{this.props.marketcap[i].DISPLAY.USD.PRICE}>{this.props.marketcap[i].DISPLAY.USD.PRICE}</td>
</tr>
));
this.props.updateMarketCap(prev);
}
И в конце файла:
const mapStateToProps = state => ({
marketcap: state.marketcap.coins
});
export default connect ( mapStateToProps, { fetchMarketCap } )(Marketcap);
И функция действия
export const updateMarketCap = (newData) => dispatch => {
dispatch({
type: UPDATE_MARKET_CAP,
payload: newData
})
}
Я правильно импортировал типы действий и другие вещи