getInitialState()替换现有状态.如何在React中传递现有状态
getInitialState() replacing existing state. How to pass existing state in React?
我正在制作一些按钮,这些按钮将根据数据库的状态显示某个类。
我已经通过一个发射器传递了我的API结果,并使用下面的方法进入我的状态:
constructor(props) {
super(props);
this.state = {
tickets: [],
user: []
};
this.onGetAllTickets = this.onGetAllTickets.bind(this);
this.onGetCurrentUser = this.onGetCurrentUser.bind(this);
}
然而,我必须使用getInitialState()
选项在我的按钮中设置一个新状态。我的按钮看起来像这样:
const AssignButton = React.createClass({
getInitialState() {
return {
isPressed: false,
completeStatus: "Assign"
};
},
handleClick() {
this.setState({
isPressed: true,
completeStatus: "Assigned",
});
},
render () {
var assignClass = 'ui orange right floated button assign';
//THIS IS WHERE I AM TRYING TO CHECK TICKET STATUS
if(this.state.tickets.status === 2) assignClass = 'ui green right floated button done disabled';
else if(this.state.isPressed) assignClass += ' disabled';
return <button className={assignClass} onClick={this.handleClick}>{this.state.completeStatus}</button>;
}
});
然而,通过this.state.tickets.status
会产生以下结果:
TicketeesBoard.js:123 Uncaught (in promise) TypeError: Cannot read property 'status' of undefined(…)
我假设这是因为我的状态被getInitialState()
方法覆盖了。
this.state.tickets.status
等在AssignButton
组件之外工作。
我如何将我的票从原始状态传递到getInitialState()
方法?
问题是您试图访问另一个组件的状态。您正在寻址this.state.tickets.status
,其中票状态未在AssignButton中声明
你有两个组成部分。TicketBoard,AssignButton。你在TicketBoard中设置了票的状态你试图在AssignButton
中访问它尝试通过props将ticket状态传递给assignButton,并将条件从this.state.tickets.status
更改为this.props.tickets.status
。此外,请确保在空数组上调用.status时不会出现问题。
相关文章:
- React redux初始化功能,无论状态变化如何
- 未捕获的类型错误:无法读取属性'状态'在react中为null
- React js更改状态不会更新组件
- React-状态未更新
- 如何在渲染函数中检查 react 中子组件的状态
- 复选框保持React JS中各组件的状态
- React Container-来自任一reducer的访问状态
- React:用父级状态更改更新子级
- 使用Re-base时,在React中从状态绑定和取消绑定Firebase
- 如何在react中设置视频端组件的状态
- 在React中管理大型状态树
- Universal React/redux未在状态更新时呈现
- React.js状态问题
- React.js状态混乱
- 如何在React中更改处于状态的数组
- 改变<选择>有状态React组件中的值
- 如何从减速器删除条目/如何返回一个新的状态?(React / Redux)
- 只跟踪一个状态React
- 与模拟无状态 React 组件帮助程序函数与 sinon、enyzme 和 ES6 导入的混淆
- 通过来自子项的回调道具更新父级的状态(React.js)