我有一个祖父母组件,它通过在数组上映射来呈现卡片父组件。那些家长卡上有孩子。处理表单提交功能的调用在祖父母中。我怎么知道表格来自哪位家长?
我读了好几次这篇文章来解释道具和状态之间的区别,我认为我可能需要进入状态而不是道具,但是当我控制台时。log(this.state)
在handleSubmit
函数中,它是空的。
在我做作的例子中,我有一套猴子和一套纸杯蛋糕。纸杯蛋糕包含对猴子的引用(存储在mongodb和my state中),因此每个纸杯蛋糕都属于一只猴子。为了制作一个新的纸杯蛋糕,我需要知道它和哪只猴子搭配。
我已经尝试了几件事情,包括在表单中传递猴子,用猴子添加一个隐藏字段(一开始看起来很黑客,但没有成功)。当我console.log(this.props)在子窗体渲染()
方法中时,它显示猴子
是道具的一部分。但是,通过{handleSubmit}
传递的this.props
中没有猴子。我根本不明白。
猴子。js-祖父母(猴子卡片是父母)我真正想要的是handleCupcakeSubmit
包含关于猴子的信息,这样我就可以为那只猴子创建一个新的纸杯蛋糕。
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import MonkeysCupcakes from './monkeyscupcakes';
import AddCupcakeForm from './add_cupcake_form';
export default class Monkeys extends Component {
constructor(props) {
super(props);
this.handleCupcakeSubmit = this.handleCupcakeSubmit.bind(this);
}
handleCupcakeSubmit({monkey, color }) {
console.log("trying to submit a cupcake")
console.log(this.state)
console.log('handleSubmitCupcake with', monkey, color);
// const userid = this.props.monkey.user;
// const mid = this.props.monkey._id;
// Eventually, I want to be able to have the userid and monkeyid - both of which are in the monkey props
//this.props.createCupcake({ userid, mid, color });
}
renderMonkeyCupcakes(mid) {
if (
this.props.cupcakes !== undefined &&
this.props.cupcakes.length > 0
) {
console.log("Monkeys is trying to render it's cupcakes");
const mc = this.props.cupcakes.filter(
cupcake => cupcake.monkeyid === mid
);
return <MonkeysCupcakes cupcakes={mc} />;
} else {
console.log('Monkeys has no cupcakes');
}
}
render() {
return (
<div>
{this.props.monkeys.map((monkey, i) => (
<div key={i} className="card blue-grey darken-1">
<div className="card-content white-text">
<span className="card-title">{monkey.name}</span>
<p>I am a monkey card</p>
<AddCupcakeForm monkey={monkey}
onSubmit={this.handleCupcakeSubmit}
/>
</div>
{this.renderMonkeyCupcakes(monkey._id)}
</div>
))}
</div>
);
}
}
Monkeys.propTypes = {
monkeys: PropTypes.array,
cupcakes: PropTypes.array
};
add_cupcake_form.js孩子
import React, { Component } from 'react';
import { reduxForm, Field } from 'redux-form';
import { connect } from 'react-redux';
import renderTextField from '../helpers/textfield';
import { createCupcake } from '../../actions';
class AddCupcakeForm extends Component {
render() {
const { handleSubmit } = this.props; // no monkey
console.log("add cupcake form props", this.props); // this.props.monkey exists
return (
<div className="section">
<form onSubmit={handleSubmit}>
<Field
label="Color"
name="color"
placeholder="Purple"
component={renderTextField}
type="text"
/>
<button className="btn-large" type="submit">
Add Cupcake
<i className="material-icons right">done</i>
</button>
</form>
</div>
);
}
}
const validate = values => {
const errors = {};
if (!values.color) {
errors.color = 'Please enter cupcake color';
}
return errors;
};
export default reduxForm({
form: 'addcupcake',
validate
})(connect(null, { createCupcake })(AddCupcakeForm));
我的项目是在github上,有这个问题的分支叫做连接器,应该在这里
选项1:调用句柄时将猴子发送给父句柄Submit
:
render() {
const handleSubmit = () => this.props.handleSubmit({
monkey: this.props.monkey
});
return (
<div className="section">
<form onSubmit={handleSubmit}>
选项2:在通过handleCupcakeSubmit时使用闭包:
{this.props.monkeys.map((monkey, i) => {
let handler = () => this.handleCupcakeSubmit({monkey})
return (
<div key={i} className="card blue-grey darken-1">
<div className="card-content white-text">
<span className="card-title">{monkey.name}</span>
<p>I am a monkey card</p>
<AddCupcakeForm monkey={monkey}
onSubmit={handler}
/>
</div>
{this.renderMonkeyCupcakes(monkey._id)}
</div>
))}
}
我对在反应中传递道具有问题。这是我的文件夹结构: src > Button.js 容器 PageContainer.js 页 Page.js 我正在使用Bootstrap 4在Button.js中创建一个按钮: “类”按钮中没有其他内容。现在我在类PageContainer中添加了一个按钮: 如你所见,我给按钮传递了一个标题:后退和下一步。那工作正常。我现在可以添加一个网址,它会工作正常,但这不是
我试图了解如何构建具有不同"页面"或"视图"的ReactJS应用程序。 我将以下组件作为我的基础应用程序,并且我正在React状态中使用currentState属性在视图中的活动组件之间切换。 它执行此任务,但在启动dataLoaded回调时,组件从不接收更新的recipes数组。 如何根据应用程序中的更新状态更新道具? 还是我处理这整件事的方式错了?
我实际上正在学习reactjs,并且实际上正在开发一个小的TODO列表,包装在一个名为TODO的“父组件”中。 我决定将初始化移到componentDidMount内部,但这似乎是一个反模式,我需要另一个解决方案。你能帮我吗? 下面是我的实际代码:
我刚刚开始使用ReactJs开发,并一直遵循serverless-stack.com教程。我已经准备好扩展应用程序并创建一个模板,带有n个子组件,但是在管理孙子组件之间的用户会话时遇到了麻烦。 我有管理用户会话的App.js。但是我在孙子组件中有我的注销按钮,我无法让它调用App.js signOut()函数。 App.js 我的布局组件有一系列不同的组件,如页眉、页脚、导航等。。 最后,我的Na
是否更像React的方法,使我们的模型属性,并在保存之前将其编译回模型,如下所示: 这不需要调用,但是随着模型的增长,(post可能有作者、主题、标记、注释、评分等)组件开始变得非常复杂。 第一种方法是ReactLink吗?
问题内容: 如何获得Python类的父类? 问题答案: 使用以下属性: 从文档: 类对象的基类的元组。 例: 另一个例子: