嗨,我有一个名为user的组件,有一个窗体通过它的render方法处理。提交表单后,我将用户的消息类型传递给数组。因此,每次用户传递submit按钮时,这个数组都应该附加输入框中键入的消息。
但是我需要将这个数组的内容发送到另一个组件并在那里显示(handleSubmit(event)返回的数组内容。但我还是毫无头绪。有人能给我指路吗。这有可能吗?
主页.js
import React, { Component } from 'react';
import { User } from './User';
import { Chat } from './Chat';
export class Home extends Component {
displayName = Home.name
render() {
return (
<div >
<div class="user-container">
<User />
</div>
<div class="chat-container">
<Chat />
</div>
</div>
);
}
}
<span class="border"></span>
用户.js
import * as React from 'react';
export class User extends React.Component {
constructor(props) {
super(props);
this.state = {
message: '',
messages: []
};
this.handleSubmit = this.handleSubmit.bind(this);
this.handleChange = this.handleChange.bind(this);
}
render() {
return (
<div class="panel panel-default" id="frame1" onSubmit={this.handleSubmit}>
<form class="form-horizontal" action="/action_page.php">
<div class="form-group">
<label class="control-label col-sm-2" for="message">
Message
</label>
<div class="col-sm-10">
<input
type="text"
class="form-control"
name="message"
placeholder="Enter your Message"
onChange={this.handleChange}
/>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" id="submit" class="btn btn-default">
Submit
</button>
</div>
</div>
</form>
</div>
);
}
handleChange(evt) {
this.setState({ [evt.target.name]: evt.target.value });
}
handleSubmit(event) {
var newArray = this.state.messages.slice();
this.setState({ messages: this.state.message }, () => {
newArray.push(this.state.messages);
this.setState({ messages: newArray }, () => {
alert(this.state.messages);
});
});
event.preventDefault();
}
}
import * as React from 'react'
export class Chat extends React.Component {
render() {
return (
<div></div>);
}
}
我需要做的是显示User.js到Chat.js的消息状态
即使是一个更好的方法做这是高度赞赏