如何初始化 React 组件内整数数据类型的状态?

wil*_*ill 3 javascript reactjs react-native

我正在尝试为整数数据类型初始化我的 React 组件之一内的状态。现在我的状态是这样的:

state = {
  username: '',
  email: '',
  password: '',
  user_id: null,
  id: null,
  toy_id: null,
  loading: false,
}
Run Code Online (Sandbox Code Playgroud)

因为它们不是我一直用于 , 和 的字符串nulluser_id但是id稍后toy_id当我传递属性时:

const { email, password, user_id, id, toy_id } = this.state

// ...

await this.props.loginUserToy(email, password, id, toy_id)

console.log('LOGIN loginUserToy email', email)
console.log('LOGIN loginUserToy password', password)
console.log('LOGIN loginUserToy id', id)
console.log('LOGIN loginUserToy toy_id', toy_id)
Run Code Online (Sandbox Code Playgroud)

这是loginUserToy我的动作创建者页面:

export const loginUserToy = async (email, password, id, toy_id) => {
  try {
    const response = await axios({
      method: 'POST',
      url: `${API_URL}/api/get_token`,
      data: {
        email,
        password
      }
    })

    const { token } = response.data

    const userResponse = await axios({
      method: 'POST',
      url: `${API_URL}/api/login`,
      headers: {
        Authorization: `${token}`
      },
      data: {
        email,
        password
      }
    })

    const getProfileResponse = await axios({
      method: 'POST',
      //url: `${API_URL}/api/user_profile`,
      url: `${API_URL}/api/toy`,
      headers: {
        Authorization: `${token}`
      },
      data: {
        id,
        toy_id
      }
    })

    const { Name, Description, Where, When, Picture } = getProfileResponse.data

    return {
      type: FETCH_TOY,
      payload: {
        token,
        email,
        password,
        id,
        toy_id,
        name: Name,
        description: Description,
        location: Where,
        date: When,
        image: Picture
      }
    }
  }
  catch (err) {
    console.log('Exception in actions/user/loginUser err', err)
  }
}
Run Code Online (Sandbox Code Playgroud)

我返回前两个日志的“t”和“t”(这是正确的),但我继续返回null后两个日志。我知道空字符串与 a 不同,null后者意味着不存在的值。

不过,我在这里还能做点什么吗?

小智 5

尝试简单地将它们初始化为 as0而不是 as null

state = {
  username: '',
  email: '',
  password: '',
  user_id: 0
  id: 0,
  toy_id: 0,
  loading: false,
}
Run Code Online (Sandbox Code Playgroud)