2016-10-27 10 views
0

나는 환불을 새로했습니다. 단순성으로 시작하려면 Redux를 사용하여 전역 상태 값을 표시하려고합니다.조치가 완료되지 않았습니다.

콘솔에서 동작 개체를 보려고하면 "Object {type :"@@ redux/INIT "}"가 표시됩니다. 이게 뭐야?

import React, {Component} from 'react'; 
import ReactDOM from 'react-dom'; 
import {createStore} from 'redux'; 
import {Provider, connect} from 'react-redux'; 

class AllinOne extends Component{ 
    render(){ 
    return (
     <div>k 
     {this.props.globalState} 
     </div> 
    ) 
    } 
} 


const store = createStore(myREducer); 
store.dispatch(add); 

const mapStateToProps = (globalState) => { 
    return { globalState: globalState } 
} 


// Action 
const add =() => { 
    return {type : 'ADD'} 
} 

// Reducer 
function myREducer(state=0, action) { 
    console.log('counter', action) // returns Object {type: "@@redux/INIT"} 

    return state; 
} 

export default connect (mapStateToProps)(AllinOne); 
ReactDOM.render(<AllinOne />, document.getElementById('app')) 

답변

1

표시되는 작업은 국가의 초기화이다 :

여기 내 간단한 코드입니다. add 작업은 나중에 처리해야합니다.

이 문제에 선도 할 수있는 여러 지점이 있습니다

먼저, add은 어쩌면 당신이 아무것도하지 않는 dispatch(undefined)를 호출, 선언되기 전에 전달됩니다. 그러나 이것은 아마 당신의 예제에서 복사 붙여 넣기 문제 일 것입니다.

더 중요한 것은 add은 개체 여야 할 때의 기능입니다. 그래서 당신이 시도해야합니다 :

// Action 
const add = {type : 'ADD'} 
+0

감사합니다 ... 한가지 더 ... 내가 ES6의 포맷 기능에 감속기를 작성하려고 할 때 : CONST myREducer = (상태 = 0, 액션) => { 합니다. .. } 그것은 말한다 : 감속기가 기능이 될 것으로 예상했다. 왜 ? –

+0

작동해야합니다. 주문 문제 (변수를 사용하는 순간에 정의 된 변수)가 아니면 다시 알 수 없습니다. –

+0

그게 흥미 롭군요. jsFiddle 또는 작동 예제가있는 요점을 설정할 수 있다면 멋질 것입니다. –

관련 문제