我是ReactJS的新手,我在ES2015的基础上学习它。大多数例子是ES5。我的问题似乎是渲染子组件。
我的子组件是一个文本字段
import React, {Component} from 'react';
class TextField extends Component {
constructor(props, context){
super(props, context);
this.state = {
customer: {
custno: props.customer.custno
}
};
}
render() {
if(this.props.displayMode) {
return <span>{this.props.custno}</span>
}
return <input type="text" {...this.props} />
}
}
export default TextField;
我的父组件称为AddressBox,将包含许多子控件。如果displayMode为true,则它应该呈现一个范围,如果为false,则它应该呈现一个表单控件。
地址框代码为:
import React, {Component} from 'react';
import {TextField} from '../textfield/textfield.js';
class AddressBox extends Component {
constructor(props, context){
super(props, context);
this.state = {
customer: {
custno: ""
}
};
this.onCustomerNumberChange = this.onCustomerNumberChange.bind(this);
}
onCustomerNumberChange(event) {
const customer = this.state.customer;
customer.custnumber = event.target.value;
this.setState({customer: customer});
}
render() {
return (
<div className="addressbox">
<h1>Address Box</h1>
<label>Customer Number:</label>
<TextField value={this.state.customer.custno} onChange={this.onCustomerNumberChange} />
</div>
);
}
}
AddressBox.defaultProps= {
customer: {
name: "",
custnumber: ""
}
}
export default AddressBox;
当我尝试渲染这些控件时,会出现以下错误:
警告:作出反应。createElement:类型不应为null、未定义、布尔值或数字。它应该是字符串(对于DOM元素)或ReactClass(对于复合组件)。检查地址框
的呈现方法。
未捕获不变冲突:元素类型无效:需要字符串(对于内置组件)或类/函数(对于复合组件),但得到:未定义。检查地址框
的呈现方法。
我能找到的所有例子都使用了前面的React。createClass方法。有人能告诉我为什么TextField会抛出错误吗?
我发现我使用了错误的导入语法。
我在用
import {TextField} from '../textfield/textfield';
当我应该使用:
import TextField from '../textfield/textfield';
场景 我有一个父组件,里面包含一个子组件,子组件传入了一个对象,假设对象是字面量。当我的父组件更新时,子组件也会更新。导致不必要的渲染。 尝试 1.通过使用React.memo包裹子组件,作用是父组件更新,子组件只有当props变化才变化。结果发现还是不对。。。。分析了一下原因是,当父组件更新时候,传入到子组件的的引用发生了变化,虽然值是相同的。。。咋搞
我的应用程序中有以下Dagger2架构: 其中:AppComponent: UserComponent: ActivityComponent: ChatComponent: 首先,如何将不同的注入到类中?要么是应用程序,要么是活动?? 其次,我在编译代码时遇到了一个奇怪的问题,错误是: 错误:(23,10)错误:br.com.animaeducacao.ulife.domain.interacto
我想访问
本文向大家介绍浅谈Vue父子组件和非父子组件传值问题,包括了浅谈Vue父子组件和非父子组件传值问题的使用技巧和注意事项,需要的朋友参考一下 本文介绍了浅谈Vue父子组件和非父子组件传值问题,分享给大家,具体如下: 1.如何创建组件 1.新建一个组件,如:在goods文件夹下新建goodsList.vue 2.在main.js中引入 import goodsList from 'goods/good
我有一个子阵列: 我想将每个子数组的元素放入另一个数组中,但子数组大小的总和必须小于或等于6。所以我想得到这样的东西 我现在的代码是 我被困在这里,因为我的代码只有两个前元素。原始数组有大约1000个子数组,我的代码没有以那种形式分割它。
我还是ReactJs的初学者。实际上我想重写我的类组件来钩住组件,但是我的代码有一部分有问题。有人能帮我把这个组件重写成钩子吗? 这是我的代码: