【发布时间】:2020-03-09 10:00:10
【问题描述】:
我的“Board”课程有问题。我一直在到处寻找解决方案,但似乎无法解决。请告诉我我做错了什么。
错误消息是:警告:函数作为 React 子级无效。如果您返回一个组件而不是从渲染中返回,则可能会发生这种情况。或者你可能是想调用这个函数而不是返回它
class Test extends Component {
state = {
editing: false
};
edit = () => {
this.setState({ editing: true });
};
remove() {
alert("removing");
}
save = () => {
var val = this.refs.editedtext.value;
console.log(val);
this.setState({ editing: false });
};
RenderNormal = () => {
return (
<div className="commentContainer">
<div className="commentText" style={{ fontSize: "100px" }}>
{this.props.children}
</div>
<button onClick={this.edit} className="btn btn-primary">
Edit
</button>
<button onClick={this.remove} className="btn btn-danger">
Delete
</button>
</div>
);
};
RenderForm = () => {
return (
<div className="commentContainer">
<textarea
ref="editedtext"
defaultValue={this.props.children}
></textarea>
<button onClick={this.save} className="btn btn-danger">
Save
</button>
</div>
);
};
render() {
if (this.state.editing) {
return this.RenderForm;
} else return this.RenderNormal;
}
}
**class Board extends Component {
state = {
comments: ["Comment1", "Comment2", "Comment3"]
};
render = () => {
return (
<div>
{
(this.state.comments.map = (text, i) => {
return <Test key={i}>{text}</Test>;
})
}
</div>
);
};
}**
export { Test, Board };
Index.JS:
ReactDOM.render(
<div>
<Board />
</div>,
document.getElementById("app")
);
【问题讨论】:
-
(this.state.comments.map = (text, i) => {删除=。(this.state.comments.map(text, i) => { -
@NicholasTower 它现在给了我这个错误 ./src/App.js Line 70:47: Parsing error: Unexpected token, expected ","
-
我忽略了括号是错误的。
this.state.comments.map((text, i) => { -
非常感谢@NicholasTower,您的解决方案与 Ian 一起解决了我的问题。
标签: javascript html node.js reactjs