【问题标题】:react-native-router-flux: onLeft scenereact-native-router-flux: onLeft 场景
【发布时间】:2017-03-30 12:04:05
【问题描述】:

如果用户不希望对当前选定的员工进行更改,他们将能够返回到员工列表并且字段将是使用 type: 'reset' 进入 Add 时清空,就好像要保存更改一样。

似乎 onLeft 在这种情况下不起作用,因为该函数实际上并未被执行。

<Router sceneStyle={{ paddingTop: 65 }}>
    <Scene key="auth">
        <Scene key="login" component={LoginForm} title="Please Login" initial />
    </Scene>

    <Scene key="main">
        <Scene 
            onRight={() => Actions.employeeCreate()}
            rightTitle="Add"
            key="employeeList" 
            component={EmployeeList} 
            title="Employees" 
            initial
        />
        <Scene
            key="employeeCreate" 
            component={EmployeeCreate} 
            title="Create Employee" 
        />
        <Scene
            onLeft={() => Actions.employeeList({ type: 'reset' })}
            key="employeeEdit" 
            component={EmployeeEdit} 
            title="Edit Employee" 
        />                
    </Scene>
</Router>

【问题讨论】:

  • 您是否遇到任何错误? employeeList 函数在哪里?
  • 嗨@AdamPatterson,没有错误。似乎 onLeft 中的任何内容都没有被称为 console.log,无法设置 leftTitle 等。在控制台日志中查看没有错误,右边的任何东西都可以工作,但左边没有。将以下任何导航栏左按钮应用到嵌套场景似乎都不起作用。 github.com/aksonov/react-native-router-flux/blob/master/docs/…再次感谢!
  • Actions.pop() 能解决你的问题吗?
  • 看来 onLeft 对我不起作用,您建议将 Actions.pop() 放在哪里?谢谢
  • 我不确定。我觉得我需要查看更多您的代码以了解可能发生的情况。我不确定 Actions.pop() 是否会让您传递属性,但您可以将 Actions.employeeList({ type: 'reset' }) 替换为 Actions.pop() 以向后退。

标签: reactjs react-native ecmascript-6 react-native-router-flux


【解决方案1】:

更长的方法。

使用componentWillUnmount,这在离开组件即EmployeeEdit时有效

componentWillUnmount () {
    this.props.employeeInitial();
}

然后这可以调用 gigInitial 的道具;有一个动作将返回一个类型的调度说:'EMPLOYEE_INITIAL'

export const employeeInitial = () => {
    return (dispatch) => {
        dispatch({ type: EMPLOYEE_INITIAL });
    };
};

EmployeeFormReducer 将返回 INITIAL_STATE

case EMPLOYEE_INITIAL:
    return INITIAL_STATE;

【讨论】:

  • 我根据我认为可以控制左侧标题按钮的 API 尝试了所有选项,但它们都不适合我。您能找到其他解决方案吗?
猜你喜欢
  • 2017-08-19
  • 2018-01-18
  • 2017-01-05
  • 2017-04-20
  • 2017-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-26
相关资源
最近更新 更多