2017-07-25 15 views
0

以下のサブステップナビゲータを設定しました。最初のシーンはPCDrinkingDaysです。しかし、私は、シーンを変更するために、そのコンポーネントから、アクションをディスパッチするためにクリックしたときに:私はそれがブレークポイントを設定することにより、バックグラウンドでレンダリング見ることができますが反応ナビ、シーンを切り替えるためのアクションをディスパッチする - シーンが表示されない

onDone =() => { 
    this.props.dispatch(navigate(scenes.PC_HELP_ME_CALCULATE)); 
    };` 

PCHelpMeCalculate、表示されません。

私のナビゲーターは以下の通りです。他のシーンは、問題であると思われる最初のシーンからちょうど動いているように思えます。誰も助けることができますか?なぜコンポーネントは表示されませんか?

import { SubStepsNavigator } from '../../../navigators'; 

import PCDrinkingDays from '../PCDrinkingDays'; 
import PCHelpMeCalculate from '../PCHelpMeCalculate'; 
import PCUnitsCalculatorWhat from '../PCUnitsCalculatorWhat'; 
import PCUnitsCalculatorSize from '../PCUnitsCalculatorSize'; 
import PCUnitsCalculatorStrength from '../PCUnitsCalculatorStrength'; 
import PCUnitsCalculatorDrinksNumber from '../PCUnitsCalculatorDrinksNumber'; 
import PCUnitsCalculatorTable from '../PCUnitsCalculatorTable'; 

import * as scenes from '../../../scenes'; 

const PCDrinkingScenes = { 
    [scenes.PC_DRINKING_DAYS]: { screen: PCDrinkingDays }, 
    [scenes.PC_HELP_ME_CALCULATE]: { screen: PCHelpMeCalculate }, 
    [scenes.PC_UNITS_CALCULATOR_WHAT]: { screen: PCUnitsCalculatorWhat }, 
    [scenes.PC_UNITS_CALCULATOR_SIZE]: { screen: PCUnitsCalculatorSize }, 
    [scenes.PC_UNITS_CALCULATOR_STRENGTH]: { screen: PCUnitsCalculatorStrength }, 
    [scenes.PC_UNITS_CALCULATOR_DRINKS_NUMBER]: { 
    screen: PCUnitsCalculatorDrinksNumber, 
    }, 
    [scenes.PC_UNITS_CALCULATOR_TABLE]: { screen: PCUnitsCalculatorTable }, 
}; 

function getStep(routeName) { 
    switch (routeName) { 
    case scenes.PC_DRINKING_DAYS: 
    case scenes.PC_HELP_ME_CALCULATE: 
    case scenes.PC_UNITS_CALCULATOR_WHAT: 
    case scenes.PC_UNITS_CALCULATOR_SIZE: 
    case scenes.PC_UNITS_CALCULATOR_STRENGTH: 
    case scenes.PC_UNITS_CALCULATOR_DRINKS_NUMBER: 
    case scenes.PC_UNITS_CALCULATOR_TABLE: 
     return 1; 
    default: 
     console.log(`ERR not found step for route ${routeName}`); 
     return -1; 
    } 
} 

const stepsOptions = { 
    nSteps: 2, 
    getStep, 
}; 

const PCDrinkingNavigator = SubStepsNavigator(
    PCDrinkingScenes, 
    { navigationOptions: { gesturesEnabled: false }, headerMode: 'none' }, 
    stepsOptions 
); 

export default PCDrinkingNavigator; 

私は私のコンポーネントで自分の行動をディスパッチ:

class PCDrinkingDays extends Component { 

    onDone =() => { 
    this.props.dispatch(navigate(scenes.PC_HELP_ME_CALCULATE)); 
    }; 

    render() { 
    return (
     <SceneSelectNumber 
     goBack={this.goBack} 
     onChangeNumber={this.onChangeNumber} 
     selectedNumberValue={this.props.daysInAweek} 
     onDone={this.onDone} 
     sceneConfig={sceneConfig} 
     /> 
    ); 
    } 
} 

答えて

0

あなたはどこにもあなたの行動を派遣しないように見えます。あなたは

this.props.navigation.dispatch(navigate(scenes.PC_HELP_ME_CALCULATE)); 

を使用する必要がありますまたは、あなたも

this.props.navigation.navigate(scenes.PC_HELP_ME_CALCULATE); 
+0

私は私のコンポーネントに派遣、私の質問を更新を使用することができます。 – Bomber

+0

しかし、問題は 'this.props.navigation.dispatch'の代わりに' this.props.dispatch'を使用しているようです。 –

関連する問題