【发布时间】:2020-09-03 15:19:54
【问题描述】:
您获得了无法控制的子组件。 父组件存储计数器的数量并呈现该数量的子组件。它有两个按钮添加计数器和递增所有计数器。
-
您不能编辑子组件。
-
实施 incrementCounters 使其递增所有子项的计数器 被渲染的组件。
增量计数器 = () => { // TODO: 实现 };
export class ChildCounter extends React.Component{
state = {
counter: 0
};
increment = () => {
this.setState(({ counter }) => ({
counter: counter + 1
}));
};
render() {
return (
<div>
Counter: {this.state.counter}
<button onClick={this.increment}>+</button>
</div>
);
}
}
import {ChildCounter} from "./Child";
class App extends React.Component {
state = {counters:1}
addCounter = () => {
let counterRn = this.state.counters + 1;
this.setState({counters:counterRn})
};
incrementAll = () => {
}
render() {
return (
<div>
{ new Array(this.state.counters).fill(0).map((_, index) => {
return <ChildCounter key={index} />;
})
}
<br/>
<button style={{marginRight:10}} onClick={this.addCounter}>Add Counter</button>
<button onClick={this.incrementAll}>Increment all counters</button>
</div>
)
}
}
【问题讨论】:
-
我不能改变子组件 为什么不呢?这将是迄今为止 IMO 最直接的方法
-
应该这样解决
标签: javascript reactjs typescript react-native