我刚刚了解到我们可以使用 redux 降低 React 项目的复杂性。使用单一的真实来源(存储),我们不需要将状态传递给不需要它们的组件。我正在努力理解这个声明。
假设我有三个组件,A、B 和 C。A 是一个容器,其状态称为text. B 是自定义按钮,C 仅显示文本。每当单击 B 时,它都会更新 A 中的状态。然后 C 将显示更新后的文本。
A
/ \
C B
我试过将redux应用到app上,发现还是需要把props传下来。唯一的区别是我正在传递this.props.text而不是this.state.text.
我看不出 redux 如何使这样的应用程序受益。
应用程序.js
import React, { Component } from "react";
import { connect } from 'react-redux';
import MyButton from "./MyButton";
import { handleClick } from "./actions";
import Display from "./Display"
class App extends Component {
render() {
return (
<div className="App">
<MyButton onClick={()=>this.props.handleClick(this.props.text)} />
<Display text={this.props.text} />
</div>
);
}
}
const mapStateToProps = state => ({
text: state.text.text
})
const mapDispatchToProps = dispatch => ({
handleClick: (text) => dispatch(handleClick(text))
})
export default connect(mapStateToProps, mapDispatchToProps)(App)
另外,如果我们有另一个具有如下结构的应用程序。假设 B 不关心 A 的状态,但 C 需要它来显示文本。我们可以跳过 B 而让 C 使用 A 的状态吗?
A
|
B
|
C
沧海一幻觉
慕后森
相关分类