2016-07-22 5 views
1

여기에 코드를 붙여 넣었습니다. mapstatetoprops 및 mapdispatchtoprops와 연결 사용할 때 문제가, 내가 this.props.CarDetails있어 난 .. 또한 내가 버튼this.props.data가 함수가 아닙니다.

import React,{Component} from 'react'; 
import {connect} from 'react-redux'; 
import {carDetails} from '../actions/index'; 
import {Increment} from '../actions/updateValueAaction'; 
import {bindActionCreators} from 'redux'; 

class SummaryItem extends Component{ 

    componentWillMount(){ 

     this.props.carDetails(); 
    } 
    renderList(){ 

    return this.props.cars.map((car) => { 

      return (

      <div className="col-sm-6 incrementer" > 
       <div > 
        <span className="titleclass"> Hala </span> 
        <div className="input-group"> 
         <span className="input-group-btn"> 
          <button type="button" className="btn btn-default btn-number incdec" disabled="disabled" data-type="minus" value ={car.id} data-field="quant[1]"> 
          <span className="glyphicon glyphicon-minus"></span> 
         </button> 
         </span> 
         <input type="text" name="quant[1]" value={car.ct} readOnly className="form-control input-number cthtvalue" /> 

        </div> 
       </div> 
       </div> 
    </div> 



    ); 
    }); 
} 

render() { 

    return (

     <div >{this.renderList()}</div> 

     ); 
    } 

onInputChange(e){console.log(e.target.value); 
    // thisObj.onInputChange(thisObj.car.ct, event.target.value); 
} 

} 
function mapStateToProps(state){ 

    return {cars: state.cars.all}; 

    } 

    function mapDispatchToProps(dispatch){ 

return { 
    routerActions:bindActionCreators({carDetails},dispatch), 
    actions:bindActionCreators(Increment,dispatch) 
    }; 
    } 
    export default connect(mapStateToProps,mapDispatchToProps)(SummaryItem); 
+2

질문에 표시된 코드의 양을 줄이면 현재 가지고있는 문제를 재현하는 최소한의 예가 표시됩니다. –

+0

코드를 업데이트했습니다. @Tom Fenech – shalin

+1

mapStateToProps 함수에 carDetails 속성이 할당되어 있지 않으므로 부모 구성 요소에서 직접 전달하지 않으면 해당 속성을 사용할 수 없습니다. 누락되었거나 잘못 입력 된 소품을 쉽게 감지 할 수 있도록 개발 중 PropTyp 유효성 검사를 포함하는 것이 좋습니다. – oens

답변

1

이 mapDispatchToProps 기능을 사용하는 방법을 더 나은 방법이있다 : 당신이 mapDispatchToProps에 기록 된 것을에 따르면,이 같은 액션을 호출해야합니다.

function mapDispatchToProps(){ 
    return {carDetails, Increment}; 
} 

그 후 this.props.carDetails() 의해 carDetails 방법을 호출 할 수있을 것이다.

2

을 클릭하는 동안 actioncreator을 작성하는 방법을 알고 싶어 뭘 잘못했는지 함수 .. 아니다

this.props.routerActions.carDetails() 
+0

감사합니다. @ const314 – shalin

관련 문제