【发布时间】:2017-03-16 18:22:24
【问题描述】:
我正在努力开发 React-redux 应用程序以通过状态将值从一个组件传递到另一个组件。我不希望使用 reducer 和/或 dispatch 因为我没有调用 web 服务,我只想从文本框表单中获取一个值来启用 order 组件上的另一个控件。
首先,我可以从控件中获取值,但是当调用 mapstatetoprops 时,我设置并希望添加到状态的变量是未定义的。这也可能解释了为什么我的其他问题。在我的另一个组件上,由于 state-componentWillReceiveProps,永远不会调用使用 props 的函数
这里是相关代码sn-p:
<ListItemContent>
<Control component={Textfield} model="somemodel" label="MyLabel" onBlur={this.onChangeOfValue}/>
</ListItemContent>
onChangeOfValue = (event) => {
this.setState({
newValueToPassAlong: event.target.value
}); //newValueToPassAlong is set in constructor
};
let mapStateToProps = (state) => {
return {
newValueToGive: state.newValueToPassAlong
} // This is undefined
};
export default connect(mapStateToProps)(form)
所以,我的问题是如何使用 React-redux 将新变量添加到状态而不需要减速器等,并且我可以在我的其他组件中访问这个变量吗?
【问题讨论】:
-
在非联网操作中使用操作创建器/缩减器有什么问题?也就是说,请阅读本文以获取潜在的解决方案。 facebook.github.io/react/docs/lifting-state-up.html
-
当我只需要知道是否在文本框中输入了一个值,再加上我继承的代码正在使用 saga 似乎有一个错误时,感觉有很多事情要做
-
如果你使用 redux,actions 和 reducer 就是你的交易工具。
标签: reactjs react-redux