私はストアを作成しましたが、ストアに状態がないことを確認しましたが、リデューサーはストアに状態があります。 何の状態がストアに存在しないので、私はすべてで私のコンポーネントを初期化することはできません...ここでReduxストアはリデューサーから状態を取得できません
は、シミュレータからのエラーメッセージです:
ここではコードです:
configureStoreは、 :import { AsyncStorage } from 'react-native';
import { applyMiddleware, createStore, compose } from 'redux';
import thunk from 'redux-thunk';
import createLogger from 'redux-logger';
import {persistStore, autoRehydrate} from 'redux-persist';
import reducers from '../reducers';
var isDebuggingInChrome = __DEV__ && !!window.navigator.userAgent;
var logger = createLogger({
predicate: (getState, action) => isDebuggingInChrome,
collapsed: true,
duration: true,
});
var middlewares = compose(applyMiddleware(thunk, logger), autoRehydrate());
export default function configureStore() {
console.log('Reducer'+reducers)
const store = createStore(reducers, undefined, middlewares);
persistStore(store, {storage: AsyncStorage});
if (isDebuggingInChrome) {
window.store = store;
}
return store;
}
リデューサー/ prepareConnect:
import * as types from '../constants/ActionTypes';
const initialState = {
readyButtonState:false,
appearImage:'./img/[email protected]'
}
export default function prepareConnect(state = initialState,action) {
switch (action.type){
case types.CONNECT_CLICK_READY: {
return Object.assign({},state,{
readyButtonState:action.currentState,
appearImage:action.currentImage,
})
}
break;
default:
return state;
break;
}
}
の減速/インデックスここ
import { combineReducers } from 'redux';
import prepareConnect from './prepareConnect';
const rootReducer = combineReducers({
prepareConnect
});
export default rootReducer;
ここ成分が
import React, {Component} from 'react';
import {
StyleSheet,
Image,
TouchableOpacity,
View,
Text,
Button,
} from 'react-native';
import screenRelated from '../../Macro&Const/UIConst'
import BasicStyle from '../../styles/Basic'
class Bottom extends Component {
static props = {
isClick:false,
}
constructor(props) {
super(props);
this.state = {
isClick:false,
}
}
_onPressButton =() =>{
//TODO:点击的时候去创建Action, 并且Dispatch
//FIXME: 为什么这里去传递的参数给不到actionCreator里面
//发现压根在用的时候就是undefined, 为什么拿不到, 明明已经写了是False了.
this.props.isClick = !this.props.isClick;
this.setState({
isClick:!this.state.isClick,
})
this.props.actions.connectReadyClick(this.state.isClick)
}
_nextButtonClick =() =>{
//TODO: 只要能点击 就是跳进下一个界面
}
render() {
return (
<View style={BasicStyle.container}>
<TouchableOpacity onPress={this._onPressButton}
style={styles.upperButton}>
<View style={styles.innerContainer}>
<Image
style={styles.image}
source={require(this.props.appearImage)}/>
<Text style={styles.text}>Ready to connect</Text>
</View>
</TouchableOpacity>
<View style={styles.nextButton}>
<Button onPress={this._nextButtonClick}
disabled={!this.props.buttonState}
title='Next'
color='red'
style={styles.nextButton}/>
</View>
</View>
)}
}
const styles = StyleSheet.create({
innerContainer: {
flex: 1,
justifyContent: 'center',
flexDirection: 'column',
},
image:{
left:10,
height:20,
width:140,
},
text:{
position:'relative',
color: '#AEAEAE',
left:22,
},
upperButton:{
flex:1,
justifyContent:'center',
},
nextButton:{
position:'absolute',
top:230,
width:screenRelated.screenWidth+10,
alignItems:'center',
borderColor: 'blue',
borderWidth: 1,
borderRadius: 4,
}
})
export default Bottom;
店舗内に状態がないことをどのように確認しましたか? – trixn
@trixnまず、シミュレータはエラーを出して、私が使いたいものが未定義であることを教えてください。その後、私はChormeのすべてのステップをチェックして、未定義の空の状態を見つけます。 – ChuckWang
完全なエラーメッセージは何ですか?あなたの質問にこれを加えてください。 – trixn