首页 > 解决方案 > TypeError:无法读取未定义的属性“设置”(react-native)

问题描述

当我尝试获取settings. params我应该如何解决这个问题?

这有效:

const { params } = this.props.navigation.state;
console.log('from settings: ', params);

来自设置:{settings: {…}} 设置:{allDate: true, searchWord: "", todayNews: false, popularSorting: false, favoritesSorting: false}

但是,当我尝试记录 的设置属性时params,出现此错误:

const { params } = this.props.navigation.state; 
console.log('from settings: ', params.settings);

TypeError:无法读取未定义的属性“设置”

标签: react-native

解决方案


这是传递和接受参数的正确方法

let id, name; //declare variables

export default class App extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            id: 0,
            name: ''
        };

        let { params } = this.props.navigation.state;
        id = params ? params.id : null; //set var if params.id exists else null
        name = params ? params.name : null;
    }

    componentDidMount() {
        this.setState({ id: id, name: name });
    }

    render() {
        return(
            <View>
                { this.state.id }
                { this.state.name }
            </View>
        );
    }
}

推荐阅读