javascript - 在 React Native 中传递 Prop

标签 javascript react-native

我有这个组件:

<View style={{backgroundColor: solved === true ? 'green' : '#ff5b68'}}>
    <Text>{error}</Text>
    <Text>{errorInfo}</Text>
    <Text>{key}</Text>
    <Text>{uid}</Text>
    <MarkedAsSolvedButton key={key}/>
</View>

我想将 key 传递给 MarkedAsSolvedButton 组件。代码如下:

export default class MarkedAsSolvedButton extends React.Component {
    componentWillReceiveProps(nextProps) {
        alert(nextProps.key)
    }

    handlePress = () => {
        alert(this.props.key);
    };

    render() {
        return (
            <Button onPress={this.handlePress} title={'Marked as solved' + this.props.key}/>
        );
    }
}

但是当我尝试查看 key 时,它显示 undefined。但它给了我父组件中的值。

我错过了什么?

最佳答案

key 是 react 中一个非常特殊的 prop,它有意暴露给子组件。它作为一种提供 react 的方式而存在,它可以使用可用于优化性能的附加信息,尤其是在处理列表时(参见 this page )。如果您需要将信息公开给 child ,则需要将其作为不同的 Prop 传递(这可以是关键 Prop 的补充,也可以代替它)。例如:

// In the parent component's render:

<MarkAsSolvedButton key={key} identifier={key} />

// in MarkAsSolved:
handlePress = () => {
  alert(this.props.identifier);
}

关于javascript - 在 React Native 中传递 Prop ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54712519/

相关文章:

javascript - 获取 javascript 字符串中的字素字符数?

javascript - 如何使用 Jest 检查对象属性是否匹配?

javascript - KendoUI 自动完成提交表单

javascript - 如何在 React Native 中使用 sectionList 显示数据?

javascript - 从文件的完整路径到只显示文件名

javascript - 解析在本地主机上工作但不在服务器上工作的 JSON

javascript - 使用 graphql 在 react-native 中重新获取查询

javascript - react native : Touchable Opacity element is clickable on iOS but not Android

react-native - 如何在 React Native 中自动播放 youtube 嵌入的视频?

reactjs - 开 Jest 抛出 TypeError : Cannot read property 'fetch' of undefined