【问题标题】:How to make simple button navigation to other view?如何使简单的按钮导航到其他视图?
【发布时间】:2015-08-17 05:37:00
【问题描述】:

我正在尝试从一个视图到另一个视图进行简单的按钮导航(我还不确定这是否称为视图)。

例如我有 Featured.js

var SearchPage = require('./Search');

class Featured extends Component {
    showSearchPage(){
        console.log('showing search page');
        this.props.navigator.push({
            title: "Search",
            component: SearchPage
        });
    }

    render() {
        return (
           <TouchableHighlight onPress={() => this.showSearchPage()}>
              <View style={styles.row}>
                <Text style={styles.label}>Open Search Page</Text>
              </View>
            </TouchableHighlight>          
        );
    }
}

module.exports = Featured;

然后将 Search.js 作为另一个非常类似于 Featured.js 的类。如何在点击打开 Search.js 视图的视图中创建一个按钮。

目前我收到“无法读取未定义的属性推送”。 如何定义导航器或有其他简单的导航方式?

注意:我不想制作 TabBar 导航。

【问题讨论】:

    标签: reactjs react-native


    【解决方案1】:

    所以基本上你有一个应用页面,它根据用户操作呈现任一子视图。 首先,我建议你使用 state 而不是 props 来做你正在做的事情(它是动态的而不是静态的)。

    var SearchPage = require('./Search');
    var Initial = require('./Initial');
    var AnotherSubView = // ...
    
    class Featured extends Component {
        getInitialState: function() {
            title: "initial",
            component: <Initial/>
            return({title:title, component:component});
        }
        showSearchPage(){
            console.log('showing search page');
            this.setState({
                title: "Search",
                component: <SearchPage/>
            });
        }
    
        render() {
            var title = this.state.title;
            var component = this.state.component;
            return (<div>
               <TouchableHighlight onPress={() => this.showSearchPage()}>
                  <View style={styles.row}>
                    <Text style={styles.label}>Open Search Page</Text>
                  </View>
                </TouchableHighlight>
                {component}          
            </div>);
        }
    }
    
    module.exports = Featured;
    

    使用 getInitialState 加载您的第一个/登陆子视图。然后单击更改您的组件。

    顺便说一下,道具是未定义的,因为你没有定义它=p。你应该使用 setProps。无论如何,我认为这是不正确的,但你知道的。

    希望对你有帮助!

    【讨论】:

    • is {component} 是一个有效的语法吗?我在那里遇到错误。
    • 这是简单的 jsx。出了什么问题可能是组件的内容。尝试一个简单的组件 =
      Hello there
      你会看到它的工作原理
    • 我真的很抱歉,这个代码是网站或应用程序的范围。我正在做 react-native,但我没有找到 {component} 的任何文档。可能是我为 reactjs 标记错误:S 。 react-native 没有 div,span,
    • 这与 react-native 无关,你的错误是什么?这是简单的 jsx 语法,与 react-native 无关。
    • 在不从 requirejs 加载内容的情况下进行测试。只需尝试使用静态组件 =
      hello 顺便说一句,我意识到您需要编写 而不是 SearchPage 否则它不会呈现 =/
    猜你喜欢
    • 2014-01-14
    • 1970-01-01
    • 2019-11-23
    • 1970-01-01
    • 1970-01-01
    • 2021-07-03
    • 1970-01-01
    • 1970-01-01
    • 2016-12-24
    相关资源
    最近更新 更多