0
私のコンテナに2アクションをディスパッチしていますが、this.props.mostrarProduto()を取得し続け、this.props.esconderProduto()は関数。目的は、コンポーネントの表示と非表示を切り替えるマウスオーバーアクションを作成することです。React - Redux - Dispatch Action Error、this.props.mostrarProdutoは関数ではありません
おかげ
コンテナメニュー
import React, { Component } from 'react';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
import { mostrarProduto } from '../actions/index';
import { esconderProduto } from '../actions/index';
class Menu extends Component{
render(){
return (
<div onMouseOver={this.props.mostrarProduto()} onMouseLeave={this.props.esconderProduto()}>
<ul>
<li><a href="#">Link 1</a></li>
</ul>
</div>
)
}
}
function mapDispatchToProps(dispatch) {
return bindActionCreators({mostrarProduto, esconderProduto}, dispatch);
}
export default connect(null, mapDispatchToProps)(Menu);
アクションインデックス
function mostrarProduto(){
return {
type: 'SHOW_PRODUCT'
}
}
function esconderProduto(){
return {
type: 'HIDE_PRODUCT'
}
}
製品リデューサ
あなたはすべてのアクションを輸出していないconst productReducer = (state = false, action) => {
switch (action.type) {
case 'SHOW_PRODUCT':
return true;
case 'HIDE_PRODUCT':
return false;
default:
return state;
}
}
減速指数
import { combineReducers } from 'redux';
import Produtos from './texto_produto';
const rootReducer = combineReducers({
textoProdutos : Produtos
});
export default rootReducer;
おかげで、今になっイム:(@vlad –
おかげ「機能をされると予想さonMouseOverのリスナーを、代わりに型オブジェクトを得ました」、私がしようとします! –
@HugoSeleiro onMouseOverに関数参照を渡していないという問題が発生したため、メッセージを削除しました。 'onMouseOver = {this.props.mostrarProduto} 'を試してください。 – vladCovaliov