使用 handleAddElement 按钮,我将输入的结果添加到 names 数组,但是 Show 组件在没有状态的情况下看不到这个结果,据我所知,我尝试跟踪其中数组的状态,但是没有有用,告诉我问题是什么。
let names = [
'name1',
'name2',
'name3',
];
function ElementList(props) {
let names = props.names;
return (
names.map((name) =>
<Element key={name} brand={name}/>
));
}
class Element extends React.Component {
constructor (props) {
super(props);
this.state = {
input: ''
};
}
.....
handleAddElement = (e) => {
e.preventDefault();
const {input} = this.state;
this.setState({
input: ''
});
names.push(input);
}
render () {
const {input} = this.state;
return (
.....
<button onClick={this.handleAddElement}>Добавить</button>
.....
)
}
}
class Show extends React.Component {
constructor (props) {
super(props);
this.state = {
names: names
};
}
render() {
return (
<div>
<ElementList names={names}/>
</div>
);
}
}
你有 3 个组件。
Show
- 主要组件,以某种方式接收名称数据并将其作为道具传递给 ElementList。ElementList
- 接收作为 props 构建组件的名称数组Element
Element
- 最终组件因此,
Show
它必须将状态存储在自身中names
,并将其更改的第 f 个转移到Element
你怎么了
Element
?他过着自己的生活。仔细阅读文档
它必须是这样的