React-Native:如何将组件中的项目与另一个组件中的项目绑定?

瑙曼·坦维尔

我正在尝试使用wix 的 react-native-calendars 库构建日历例如,当我点击 2018 年 12 月 5 日时Calendar Component,它应该导航到 2018 年 12 月 5 日Agenda Component这就是我想要做的。

这是我Calendar Component尝试获取 id 并绑定它的代码:

    class Calendar extends Component {
    constructor(props) {
        super(props);
         this.state = {
             active: 'true'
         }
    }

    render() { 
        const {onSelect} = this.props;
        return ( 
            <View>
                <CalendarList 
                    keyExtractor = {day=>day.id}
                    onDayPress={(day) => {onSelect.bind(this, day)}}
                    pastScrollRange={12}
                    futureScrollRange={12}
                    scrollEnabled={true}
                    showScrollIndicator={true}
                />
            </View>
         );
    }
}

Calendar.propTypes = {
    onSelect: PropTypes.func,
}

这是我CalendarScreen进行导航的代码

const CalendarScreen = ({navigation}) => (
    <View >
        <Calendar  navigation={navigation} 
            onSelect={(id)=>{
            navigation.navigate('Agenda', {id}) }}>
            <StatusBar backgroundColor="#28F1A6" />
        </Calendar >
    </View>
);

Calendar.propTypes = {
    navigation: PropTypes.object.isRequired
}

export default CalendarScreen;

我也是这里提到的解决方案但没有运气。

编辑:

这是我的 Agenda Component

    class WeeklyAgenda extends Component {
    constructor(props) {
    super(props);
    this.state = {
      items: {}
    };
  }

  render() {
    return (
        <View style={{height:600}}>
             <Agenda
                items={this.state.items}
                loadItemsForMonth={this.loadItems.bind(this)}
                selected={Date()}
                renderItem={this.renderItem.bind(this)}
                renderEmptyDate={this.renderEmptyDate.bind(this)}
                rowHasChanged={this.rowHasChanged.bind(this)}
                onRefresh = {() => { this.setState({refeshing : true})}}
                refreshing = {this.state.refreshing}
                refreshControl = {null}
                pastScrollRange={1}
                futureScrollRange = {3}
            />
    );
  }

这是 AgendaScreen

    const AgendaScreen = ({navigation}) => (
    <View style={{height: 100}}>
        <WeeklyAgenda  navigation={navigation}>
            <StatusBar backgroundColor="#28F1A6" />
        </WeeklyAgenda >
    </View>
);

WeeklyAgenda.propTypes = {
    navigation: PropTypes.object.isRequired
}

export default AgendaScreen;
本杰明·谢勒

日历通过 CalenderScreen 一个回调 onSelect(id)。

日历屏幕只需要调用onSelect(day)。

onDayPress={(day) => {onSelect(day)}}

或者让回调同时接受导航对象和日期

onDayPress={(day) => {onSelect(day, navigation)}}

日历现在应该设置

onSelect={(day, navigation)=>{
        navigation.navigate('Agenda', {day}) }}>

或者当您将导航对象传递给日历时,为什么要传递回调

onDayPress={(day) => {this.props.navigation.navigate('Agenda', {day})}}

编辑:新课程,并将 id 更改为 day

同样的问题。onSelect 导航到 AgentScreen 并将导航道具传递给它(其中包含 day 对象),反过来,AgentScreen 将导航道具传递给 WeeklyAgent,但 WeeklyAgent 不使用导航道具来获取 id。

selected={Date()}

使用今天的日期创建一个新的日期对象。要获得正确的日期,您需要从导航中获取日期,通常类似于

this.props.navigation.state.params["day"]

返回经过的日期。

现在,如果 WeeklyAgenda 实际上没有进一步使用导航,我就不会通过它。

相反,每周议程应该有一个道具“日”,而不是

 <WeeklyAgenda  navigation={navigation}>

尝试

const { params } = this.props.navigation.state;
...
<WeeklyAgenda  day={params["day"}>

第一行将 params 对象从 state 解包到一个名为 params 的变量中。

WeeklyAgenda 现在可以做

selected={this.props.day}

我认为这里的问题根本不是绑定。我建议阅读这篇文章或其他关于绑定功能的文章。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将状态className变量传递给React中的另一个组件

来自分类Dev

如何将表单输入字段传递给 React 中的另一个组件?

来自分类Dev

React-如何将API数据从一个组件传递到另一个js文件中的另一个组件?

来自分类Dev

React Native将Text组件添加到另一个Text组件中

来自分类Dev

React Native将Text组件添加到另一个Text组件中

来自分类Dev

如何将值onClick从不同组件分配给React中的另一个组件

来自分类Dev

如何将组件名称从另一个组件的对象传递到React Router Dom中的Route?

来自分类Dev

如何将组件作为道具传递给 react js 中的另一个组件?

来自分类Dev

如何将一个React-Admin组件嵌入另一个组件中;多个管理组件

来自分类Dev

如何在React Native中从另一个功能组件更改一个功能组件的状态?

来自分类Dev

如何将翻译后的字符串传递给react-jhipster中的另一个组件?

来自分类Dev

如何将对象从数组渲染到React中的另一个组件?

来自分类Dev

如何在React中从另一个组件设置一个组件的状态

来自分类Dev

我如何在React Native中从另一个组件调用函数?

来自分类Dev

如何在React Native中导航到类组件中的另一个屏幕

来自分类Dev

如何在React Native中导航到类组件中的另一个屏幕

来自分类Dev

如何在React Native中导航到类组件中的另一个屏幕

来自分类Dev

如何在另一个文件中获取组件的状态 react native

来自分类Dev

从React Native中的另一个组件导航后,如何刷新堆栈中已经存在的组件

来自分类Dev

如何通过在React中的兄弟组件上单击事件将图像加载到另一个组件中

来自分类Dev

将TypeScript React组件嵌套在另一个组件中

来自分类Dev

单击另一个组件中的按钮时,如何显示/隐藏React组件?

来自分类Dev

如何通过在React中单击另一个组件来删除组件?

来自分类Dev

React – 如何在另一个已安装的组件中渲染附加组件?

来自分类Dev

React-如何将状态传递给另一个组件

来自分类Dev

在 React 中的另一个组件中动态渲染一个组件

来自分类Dev

在React中渲染另一个组件

来自分类Dev

在react中动态添加另一个组件

来自分类常见问题

React.js:将一个组件包装到另一个组件中

Related 相关文章

  1. 1

    如何将状态className变量传递给React中的另一个组件

  2. 2

    如何将表单输入字段传递给 React 中的另一个组件?

  3. 3

    React-如何将API数据从一个组件传递到另一个js文件中的另一个组件?

  4. 4

    React Native将Text组件添加到另一个Text组件中

  5. 5

    React Native将Text组件添加到另一个Text组件中

  6. 6

    如何将值onClick从不同组件分配给React中的另一个组件

  7. 7

    如何将组件名称从另一个组件的对象传递到React Router Dom中的Route?

  8. 8

    如何将组件作为道具传递给 react js 中的另一个组件?

  9. 9

    如何将一个React-Admin组件嵌入另一个组件中;多个管理组件

  10. 10

    如何在React Native中从另一个功能组件更改一个功能组件的状态?

  11. 11

    如何将翻译后的字符串传递给react-jhipster中的另一个组件?

  12. 12

    如何将对象从数组渲染到React中的另一个组件?

  13. 13

    如何在React中从另一个组件设置一个组件的状态

  14. 14

    我如何在React Native中从另一个组件调用函数?

  15. 15

    如何在React Native中导航到类组件中的另一个屏幕

  16. 16

    如何在React Native中导航到类组件中的另一个屏幕

  17. 17

    如何在React Native中导航到类组件中的另一个屏幕

  18. 18

    如何在另一个文件中获取组件的状态 react native

  19. 19

    从React Native中的另一个组件导航后,如何刷新堆栈中已经存在的组件

  20. 20

    如何通过在React中的兄弟组件上单击事件将图像加载到另一个组件中

  21. 21

    将TypeScript React组件嵌套在另一个组件中

  22. 22

    单击另一个组件中的按钮时,如何显示/隐藏React组件?

  23. 23

    如何通过在React中单击另一个组件来删除组件?

  24. 24

    React – 如何在另一个已安装的组件中渲染附加组件?

  25. 25

    React-如何将状态传递给另一个组件

  26. 26

    在 React 中的另一个组件中动态渲染一个组件

  27. 27

    在React中渲染另一个组件

  28. 28

    在react中动态添加另一个组件

  29. 29

    React.js:将一个组件包装到另一个组件中

热门标签

归档