组件中不可用的道具[重复]

Posted

技术标签:

【中文标题】组件中不可用的道具[重复]【英文标题】:props not available in component [duplicate] 【发布时间】:2018-09-23 13:53:09 【问题描述】:

我正在尝试实现我的第一个 react/redux/thunk 测试调度消息。但是我不明白为什么“按”功能找不到道具。

未捕获的类型错误:无法读取未定义的属性“道具” 新闻时 (stuffList.js:17)

这在 componentWillMount() 中可以正常工作,但是当我单击按钮时它将无法正常工作。有人可以帮我澄清一下吗?

import connect from 'react-redux';
import bindActionCreators from 'redux';
import * as stuffActions from '../actions/stuffActions';
import PropTypes from 'prop-types';
import React from 'react';

class stuffList extends React.Component 



componentWillMount() 
    //this.props.stuffActions.fetchStuff();
    this.props.stuffActions.test();



press() 
    this.props.stuffActions.test();


renderData(item) 
    return <div key=item.id>item.name</div>;


render() 

        return (

            <div className="">
            this.props.data
            <button onClick=this.press>Click</button>


            </div>
        )
    



stuffList.propTypes = 
    stuffActions: PropTypes.object,
    stuff: PropTypes.array
;

function mapStateToProps(state) 
    console.log(state);
    return 
        data: state.stuff
    ;


function mapDispatchToProps(dispatch) 
    return 
       stuffActions: bindActionCreators(stuffActions, dispatch)
    ;


export default connect(
    mapStateToProps,
    mapDispatchToProps
)(stuffList);

【问题讨论】:

【参考方案1】:

您需要将组件上下文绑定到处理程序:

<button onClick=this.press.bind(this)>Click</button>

【讨论】:

以上是关于组件中不可用的道具[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如果可用,检查子组件中的道具值

Angular:组件 X 不包含在模块中,并且在模板中不可用

除非我刷新页面,否则 Javascript localStorage 在其他组件中不可用

从模块中导出的角度组件在另一个模块中不可用

iOS 应用程序已在 iTunes Connect 中可供销售,但在 Appstore 中不可用 [重复]

基础框架错误$ key在$ foundation-palette中不可用