用Redux React本机句柄头腰背式



我已将REDUX集成到我的RN项目。我可以用按钮在屏幕之间导航,但是当我想返回headerbackbutton时,它说:"未定义不是函数"

github-repo:https://github.com/bayraktarhasan/react-navigation-navigation-redux-globalization-example.git

我的提要组件:

 class Feed extends Component {
  static navigationOptions = {
    title: 'Hello Ahmet',
    headerLeft: <HeaderBackButton onPress={this.goBack()} />,
  }
  constructor(props) {
    super(props);
    this.goBack = this.goBack.bind(this);
  }
  goBack = () => {
    this.props.navBack();
  }
  render() {
    return (
      <View style={styles.container}>
        <Text>{I18n.t('feedComponent')}</Text>
        <Button
          title={I18n.t('back')}
          onPress={this.goBack}
        />
      </View>
    );
  }
}
export default connect(null, { navBack, navToProfile })(Feed);

还原器:

import { NAVIGATE_BACK, NAVIGATE_PROFILE, NAVIGATE_FEED } from '../Actions/types';
const firstAction = AppNavigator.router.getActionForPathAndParams('Main');
const initialNavState = AppNavigator.router.getStateForAction(
  firstAction
);

function nav(state = initialNavState, action) {
  console.log(action.type);
  let nextState;
  switch (action.type) {
    case NAVIGATE_BACK:
      nextState = AppNavigator.router.getStateForAction(
                  NavigationActions.back(),
                  state
                );
      break;

这只是黑暗中的镜头,但又没有定义。也许尝试:

const goBack = () => {
   this.props.navBack();
}

这很具有讽刺意味,因为昨天我遇到了同样的问题。这是如何正确分配URL作为动作创建者的道具的帖子

从上面的链接中可能还不清楚您可能需要做的事情。但是我会尝试解释我发现的内容(我不是任何专家)。您的代码将用于文本输入或日期选择器或类似的内容。这样:

<TextInput
      label="Model"
      placeholder="4020"
      value={this.props.model}
      onChangeText={value => this.props.entryUpdate({ prop: 'model', value })}
/>

文本输入已经有几个道具。在这里,您将值分配给

this.props.<whatever you want the specific object/prop to be called>

但是,使用按钮,您必须分配一个实际的道具名称/变量才能传递给您的动作创建者。在这里,您没有实际的道具。因此,它会像未定义一样返回。因此,您必须声明该道具的变量名称并将其分配给此。

this.props.navBack();

所以也许是:

const goBack = () => {
  const { back } = this.props
    this.props.navBack({ back });
}

,在您的情况下,您可能需要为prop {back}指定特定值。否则,它将告诉您您的第二个论点也不确定。

这是一个很酷的调试器,可帮助您查看您的道具是否真的传递给了动作创建者:

https://github.com/jhen0409/reaeact-native-debugger

希望对它的帮助更多。祝你好运!

相关内容

  • 没有找到相关文章

最新更新