Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs TSX组件阵列,阵列内组件_Reactjs_Typescript_Types_Components - Fatal编程技术网

Reactjs TSX组件阵列,阵列内组件

Reactjs TSX组件阵列,阵列内组件,reactjs,typescript,types,components,Reactjs,Typescript,Types,Components,我试图在tsx中有一个子组件数组,然后在以下代码中将一个实例添加到该数组中: import ShoppingList from './ShoppingList'; interface TPState { shoppingLists2: ShoppingList[]; shoplistsums: number[]; sum: number; } class TotalPrice extends React.Component<{}, TPState> { co

我试图在tsx中有一个子组件数组,然后在以下代码中将一个实例添加到该数组中:

import ShoppingList from './ShoppingList';    
interface TPState {
  shoppingLists2: ShoppingList[];
  shoplistsums: number[];
  sum: number;
}

class TotalPrice extends React.Component<{}, TPState> {
  constructor(props: {}) {
    super(props);
    this.state = {
      shoppingLists2: [ShoppingList],
      sum: 0
    }
  }
从“/ShoppingList”导入ShoppingList;
接口状态{
ShoppingList 2:ShoppingList[];
shoplistsums:编号[];
总和:数字;
}
类TotalPrice.Component{
构造函数(props:{}){
超级(道具);
此.state={
shoppingLists2:[购物清单],
总数:0
}
}
但我得到一个错误,它是不可分配的。 我使用数组在页面中的按钮按下时添加组件,并且像这样添加初始项。
为什么会出错?

不确定您会收到什么错误消息,可能有两种情况。首先,您可以指定将
[ShoppingList]
强制转换为类型。此外,您还需要指定所有状态参数

class TotalPrice extends React.Component<{}, TPState> {
  public state = {
    shoppingLists2: [ShoppingList] as ShoppingList[], //  as ShoppingList[] may not be needed but dont know without the error message
    sum: 0,
    shoplistsums: [] // you were missing this item in your state, proabably what the issue was
  }
}
然后你的状态类型

interface TPState {
  shoppingLists2: IShoppingList[];
  shoplistsums: number[];
  sum: number;
}

这一行的ShoppingList是什么?
ShoppingList s2:[ShoppingList]
?哦,很抱歉从“/ShoppingList”导入ShoppingList;ShoppingList是一个数组吗?不,它是一个组件,我希望数组将此类组件保存为typeok,所以将其转换为ShoppingList[]ok如果我添加所有3个状态并不强制转换,那么这就是错误:类型“{shoppingLists2:(typeof ShoppingList)[];总和:数字;ShoppingSums:undefined[];}”不可分配给类型“Readonly”。属性“shoppingLists2”的类型不兼容。类型“(typeof ShoppingList)[]不可分配给类型“ShoppingList[]“.Type'typeof ShoppingList'不可分配给Type'ShoppingList'。Type'typeof ShoppingList'中缺少属性'HandletText'。@jhonathanmyers您需要为您的购物列表定义一个类型。.在您的界面中,您指定它是ShoppingList数组的类型,但实际上它是ShoppingList[]的类型
typeof
像这样吗?shoppingList:shoppingList;shoppingList 2:shoppingList[];但这可能不起作用no@jhonathanmyers看看我的编辑。你需要为你的数组定义一个类型。如果你仍然有错误,那么就使用该类型。如果没有可以测试的东西,它将很难修复。你能创建一个代码笔并举例说明它不工作吗?是的,但是如果我有那个接口,我如何添加组件还是吗?我现在正在用另一种方式尝试,也许你可以看看:
interface TPState {
  shoppingLists2: IShoppingList[];
  shoplistsums: number[];
  sum: number;
}