如何使用useState处理对象值?

时间:2020-08-10 00:19:30

标签: reactjs react-hooks

我是胡克的新手。 在我的项目中,const状态是一个对象,其中state.boolean = false,state.number = 1

我有一个仅与state.number相关联的输入框, 那么我的handleChange函数应该是什么?

extension CustomDimensions on TextTheme {
  double type({String data}) {
    if(data == 'homeContainer')
      return 1.0;
    else
      return 0; // else code
  }
}


double getDimension(BuildContext context, bool isHeight, String type) {
  double value;
  isHeight ? value = MediaQuery.of(context).size.height * Theme.of(context).textTheme.type(data: type) : null;
  return value;
}

不对。

非常感谢

1 个答案:

答案 0 :(得分:3)

您仍然可以使用useState挂钩及其关联的setState函数更新对象的某些部分:

const initialValue = {
  boolean: false,
  number: 1
}

const [value, setValue] = useState(initialValue)

function updateNumberPartOfState = number => {
  setValue({
    ...value,
    number: number
  })
}

function updateBooleanPartOfState = boolean => {
  setValue({
    ...value,
    boolean: boolean
  })
}


或者像安德鲁·李(Andrew Li)所说,对于每个变量,只有一个单独的setState值/函数对:

const [boolean, setBoolean] = useState(false)
const [number, setNUmber] = useState(1)

注意:请不要实际使用booleannumber,因为它们非常接近保留术语BooleanNumber,我敢肯定打字稿将小写的值用作保留字。