在this.state中存储对象数组后,我尝试访问对象中的值,如array[random.somevalue
,但它显示错误array[random]is undefined
。 但它适用于array[random]
返回一个对象。 为什么我不能访问那个对象里面的值。。。?
class Quiz extends Component {
constructor(props) {
super(props);
this.state = {
data: undefined,
q_no: 0,
rand_q: {},
opts: []
}
this.newQuestion = this.newQuestion.bind(this);
}
componentDidMount() {
if(this.state.data === undefined) {
fetch("http://restcountries.eu/rest/v2/all")
.then(data => data.json())
.then(data => this.setState({data: [data.map((val) => ({name: val.name, flag: val.flag}))]}))
.then(() => console.log(this.state.data));
}
}
newQuestion() {
const state = this.state;
const rand = Math.floor(Math.random() * 200);
this.setState({rand_q: {name: state.data[rand].name, flag: state.data[rand].flag}, opts: [state[rand-1].name, state[rand+1].name, state[rand+2].name]});
}
TypeError: state.data[rand] is undefined
newQuestion
src/Quiz.js:30
27 | newQuestion() {
28 | const state = this.state;
29 | const rand = Math.floor(Math.random() * 200);
> 30 | this.setState({rand_q: {name: state.data[rand].name, flag: state.data[rand].flag}, opts: [state[rand-1].name, state[rand+1].name, state[rand+2].name]});
| ^ 31 | }
32 |
33 | render() {
请帮帮我。。。
您的构造函数是在ComponentDidMount
之前调用的,因此没有可用的State.Data
(因为您将其设置为Undefined
)。
您必须将NewQuestion
调用移动到render函数或ComponentDidUpdate
我想访问
问题内容: 我想使用React.js制作一个应用程序。我希望它可以轻松地从外部进行自定义(例如,通过编写用户脚本)。我尝试使用的想法是在根元素状态(如或)中创建一些特殊的属性,以便插件开发人员可以在此处添加一些内容。我的问题是:这是否是一个好方法,是否有Right Way™实现与我的目标相似的目标,最后,插件开发人员将如何使用这些道具? 问题答案: 一种选择是可观察的。基本上,它是一个对象,您可以
我想访问父组件中的子组件的状态,我不想在子组件中使用任何可以在父组件中设置变量的处理程序,或者我不想在父组件中提升状态。我怎么能使用ref的反应打字稿创建Ref并获得父组件中的孩子的状态? 家长: 儿童:
问题内容: 我在React中有一个表单,可以动态添加新的输入元素。这似乎 工作正常,但我似乎无法访问此 屏幕截图中所示的输入值… console.log数组 我尝试了以下 console.log(this.state.telephone.name) 和… console.log(this.state.telephone.tidx.name) 其中tidx是唯一键。 这是构造函数… and this
问题内容: 我有一个列表视图,每当用户单击一个项目时,我都想使用onPress(可触摸的突出显示)进行操作。 我尝试定义函数,然后在onPress中调用它们,但是它们没有起作用。 首先,我定义了这样的功能: 然后 : 但是它没有用,错误: 我试图像这样在onPress上调用它: 没有帮助 没有帮助 即使我什至不能访问构造函数中定义的道具。它不知道什么是“这”! 我试图以其他方式定义函数,如下所示:
我想访问来自该对象数组的ends\u数据。。。但我不能让它工作。输出未定义。请帮帮我。
编辑(2020年6月22日):由于这个问题引起了一些新的兴趣,我意识到可能会有一些困惑。因此,我想强调:问题中的例子是作为玩具的例子。它没有反映问题。引发这个问题的问题是使用第三方库(对该库的控制有限),该库将回调作为函数的参数。提供最新状态的回调的正确方法是什么?在反应类中,这可以通过使用this来完成。在React钩子中,由于状态封装在函数中的方式,如果回调通过获取状态,它将是过时的(值设置回
我在react native中有一个搜索栏组件,它在父组件中导入, SearchBar子组件具有以下元素: 是否可以访问此子组件在其中导入的父组件中的状态?提前感谢你的帮助