私はreduxに傾いています、私はreduxから部品を反応させるかどうかを知るために単純なテストアプリを作成しようとしていますが、期待通りに機能しません。それは自己完璧に動作しますが、それは私のコンポーネントに値を渡しませんいくつかの1つ私のコードで問題を指摘してください?ありがとう。reduxと反応接続が機能しませんか?
const randomNum=()=>{...}
const ReduxPropsTest =(props)=>(
<div>
<button onClick={()=>console.log('but this component does not have the props',props.array)}>test</button>
</div>
)
const mapStateToProps=state=>{
{array:state.reducer}
}
connect(mapStateToProps)(ReduxPropsTest)
//actions
const addItem=(array=[])=>(
{
type:'ADD_ITEM',
array,
}
)
//reducer
const reducer=(state=[],action)=>{
switch(action.type){
case 'ADD_ITEM':
return [
...state,
action.array
]
default:
return state;
}
}
//store
const store=createStore(reducer)
//create test state
store.subscribe(()=>{
const state=store.getState();
console.log('I dispatched successfully: ',state)
})
const Jsx=()=>(
<Provider store={store}>
<ReduxPropsTest/>
</Provider>
)
store.dispatch(addItem({array:randomNum()}))
store.dispatch(addItem({array:randomNum()}))
store.dispatch(addItem({array:randomNum()}))
store.dispatch(addItem({array:randomNum()}))
ReactDom.render(<Jsx/>,document.getElementById('app'))
これは私がいくつかの提案に基づいて自分のコードを修正しようとしましたが、私はどれもこれはエラーの絵で、これまで
const randomNum=()=>{...}
const ReduxPropsTest =(props)=>(
<div>
<button onClick={()=>console.log('but this component does not have the props',props.array)}>test</button>
</div>
)
const mapStateToProps=state=>({
array:state.reducer
})
const Connected = connect(mapStateToProps)(ReduxPropsTest)
const addItem=(array=[])=>(
{
type:'ADD_ITEM',
array,
}
)
const reducer=(state=[],action)=>{
switch(action.type){
case 'ADD_ITEM':
return [
...state,
action.array
]
default:
return state;
}
}
const store=createStore(reducer)
store.subscribe(()=>{
const state=store.getState();
console.log('I dispatched successfully: ',state)
})
const Jsx=()=>(
<Provider store={store}>
<Connected/>
</Provider>
)
store.dispatch(addItem({array:randomNum()}))
store.dispatch(addItem({array:randomNum()}))
store.dispatch(addItem({array:randomNum()}))
store.dispatch(addItem({array:randomNum()}))
ReactDom.render(<Jsx/>,document.getElementById('app'))
この質問はあなたが私を指す1の重複ではありません。私は自分のコードを動作させるためにエクスポートメソッドを必要とせず、それは私が求めるものではありません。私は別の問題と異なる答えを持っています。 – Nhat