问题描述
在我的应用程序中,我有一个子组件:Post,它有一个用于提交一些数据的输入文本框。
我的父组件 Posts 应从子组件获取此输入值数据,并在通过函数 addAnswerHandler() 提交后将其发布到 google Firebase 数据库。
如何将带有 inputname=Answer 的输入中的值从子组件传递给父函数 postAnswerHandler()。
React,{ Component } from 'react';
import { render } from 'react-dom';
import { Link,Route,NavLink,Switch,Redirect } from 'react-router-dom';
import Answered from '../../containers/Blog/answered/answered-posts';
import './Post.css';
import RothIRA_1 from '../../containers/Types/RothIRA_1';
function post (props) {
return (
<article key={props.id} className="Post" onClick={props.clicked}>
<h1>{props.key_1}</h1>
<h1>{props.title}</h1>
<p className="Body-Content">{props.body}</p>
<div className="Info">
<div className="Answer-Section">
<input type="text" className="Question-Answer" name="Answer" value={'test'}
placeholder="Your Answer..." ></input>
<li className="Answer-Button"><input type="submit" value="Answer" id="submitButton" /></li>
</div>
<ul>
<li className="Type-Link"><NavLink to={{
pathname: '/'+ props.type,hash: '#submit',search: '?quick-submit=true'
}}>{props.type}</NavLink></li>
</ul>
</div>
<Switch>
<Route path="/RothIRA" component={RothIRA_1} />
<Route path="/answered" component={Answered} />
{/* <Route path={'/' + props.type} component={RothIRA_1} /> */}
{/* <Route path= {'/'+ props.type} component={RothIRA} /> */}
</Switch>
</article>
);
}
export default post;
import React,{ Component } from 'react';
import axios from '../../../axios';
import { Link,Redirect } from 'react-router-dom';
import Post from '../../../components/Post/Post';
import './Posts.css';
import FullPost from '../FullPost/FullPost';
import Answered from '../answered/answered-posts';
import Unanswered from '../../Unanswered/Unanswered-Posts';
import Myquestions from '../My-Questions/Myquestions';
import RothIRA_1 from '../../Types/RothIRA_1'
class Posts extends Component {
state = {
posts: []
}
componentDidMount () {
axios.get( 'https://blog-6d4da-default-rtdb.firebaseio.com/posts.json' )
.then( response => {
let posts = Object.values(response.data);
let keys = Object.keys(response.data);
const updatedPosts = keys.map( key => {
return {
key,...response.data[key],}
} );
this.setState( { posts: updatedPosts } );
} )
.catch( error => {
console.log( error );
} );
}
postAnswerHandler = ( id,question_answer ) => {
const data = {
answer: question_answer
};
const data_1 = JSON.stringify(data);
axios.put('/posts/'+id+'.json',data);
}
render () {
let posts = <p style={{ textAlign: 'center' }}>Something went wrong!</p>;
if ( !this.state.error ) {
posts = this.state.posts.map( (post) => {
return (
<Post
key={post.key}
id={post.key}
title={post.title}
type={post.type}
body={post.body}
answer={post.answer}
clicked={() => this.postAnswerHandler(post.key,post.answer)}
/>
);
} );
}
return (
<div className="Posts-Page">
<section className="Posts">
{posts}
</section>
</div>
);
}
}
export default Posts;
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)