import React from 'react';
import mind_zebra from '../../images/MindScribe-zebra.png';
import Dropdown from './Dropdown/Dropdown.js';
export default class Entry extends React.Component {
constructor (props) {
super(props);
this.state = {
value : "1",
hideZebraPic : false,
}
this.changeLanguage = this.changeLanguage.bind(this);
}
onClickHandler = () => {
this.setState( prev => ({ hideZebraPic: !prev.hideZebraPic}));
};
changeLanguage (event) {
console.log("hello");
this.setState({ value: event.target.value });
}
render() {
if (this.state.hideZebraPic) {
return (
<div>
<Dropdown langueageSelection={this.changeLanguage}/>
</div>
);
} else {
return (
<div>
<img src={mind_zebra} onClick={this.onClickHandler} className="MindZebraPic" alt="zebra"/>
</div>
);
}
}
}
一个子:下拉组件
import React from 'react';
export default class Dropdown extends React.Component {
changeLanguage(event) {
this.setState({ value: event.target.value });
console.log("hello");
}
render () {
return (
<form >
<label>
<div className="langueageSelection">
<select onChange={this.handleChange}>
<option value=""> Please select a language </option>
<option value="1"> English </option>
<option value="2"> Chinese </option>
</select>
</div>
</label>
</form>
);
}
}
第二个子:播放列表组件
import React from 'react';
export default class Playlist extends React.Component {
render() {
if (this.props.langueageSelection === "1"){
console.log("English");
}
else if(this.props.langueageSelection === "2"){
console.log("Chinese");
}
return (
<div> Hi</div>
);
}
}
首先,在下拉组件中,您使用的是this.setstate,但没有state。
在Entry组件中使用getter函数。
this.state = {
value : "1",
hideZebraPic : false,
Language:'',
}
getLanguage = (language) => this.setState({Language:language})
将函数getLanguage作为下拉的道具向下传递。
<Dropdown getLanguage={this.getLanguage}/>
<select onChange={(e) => this.props.getLanguage(e.target.value)}>
<option value=""> Please select a language </option>
<option value="1"> English </option>
<option value="2"> Chinese </option>
</select>
我遇到了一个有趣的场景,我需要让Child1调用Child2的方法。 我试图创建一个Child2的实例,并将其方法作为道具传递给Child1。我不确定这是否是正确的做法。
问题内容: 我正在尝试将数据从子组件发送到其父组件,如下所示: 这是子组件: 我需要的是由用户在父组件中获取选定的值。我收到此错误: 谁能帮我发现问题? PS子组件正在从json文件创建一个下拉列表,并且我需要该下拉列表来显示json数组的两个元素彼此相邻(例如:“ aaa,english”是首选!) 问题答案: 这应该工作。在发送回道具时,您将其作为对象发送,而不是作为值发送,或者将其用作父组件
如果问题中使用的术语不正确,请与我一起,因为这是我第一次使用react JS。我通过参考大量的博客、youtube、文档等编写了一些代码,现在我被困住了,因为它是所有东西的混合体。 我需要对一个endpoint(关于.js组件)进行get调用,该endpoint返回json数据,这些数据将被传递给(workspace.js组件),在那里呈现和显示这些数据。到目前为止,它运行良好。 下一步,有一个链
我有两个组件,一个是子组件,另一个是父组件。我正在有条件地撕裂我的子组件。这段代码的功能就是当你们点击按钮时,定时器将显示,当你们点击停止定时器将停止。这里“Timer”是子组件,我在“Timer”组件中使用了state属性,我想在单击“stop Timer button”之前显示Timer的值。那么如何将“timer”状态变量值从子组件传递到父组件呢。 这是父组件,下面的代码用于“计时器”组件。
我试图从按钮类中的道具集中提取数字的值。然后在发现函数中呈现这个值。类正确显示了Number的值。但是,该函数不显示数字的任何值。 为了让它发挥作用,我已经花了一段时间来处理这个问题。但是我找不到任何解决我问题的办法。 没有错误消息。显示的预期结果:https://i.imgur.com/fr61SE0.png 实际显示结果:https://i.imgur.com/MRE0Lsj.png
问题内容: 我想将功能传递给子组件,但出现此错误。 基本上是我想做的。 var ReactGridLayout = require(’react-grid-layout’); 似乎它是在React v16中引入的。因此,将函数从父代传递给子代的正确方法是什么? 问题答案: 我发现出了什么问题。这是因为react-grid-layout。我必须将其余的属性传递给孩子。