Как получить все мои данные о состоянии всего одним строковым кодом с реагирующим хуком? - PullRequest
0 голосов
/ 06 ноября 2019

Я просто пытаюсь использовать ответный хук недавно.

Если я расширяю Компонент, я объявляю свое состояние следующим образом:

  constructor(props) {
    super(props);

    // dummy state
    this.state = {
      focus: false
      name: 'test'
      image: ''
      avatarSource: '',
      imageBase: 'sfsafsfasf',
      imageLoader: null,
    }

Если я хочу отправить все значения состояния,Я буду использовать ...this.state

так же, как:

sendStateFunction(...this.state);

Если я использую реагирующий хук, я объявляю свое состояние следующим образом:

const test = () => {

  const [name, setName] = useState('');
  const [image, setImage] = useState('');
  const [sex, setSex] = useState(0); 
  const [id, setId] = useState('');
}

Но у меня нетИдея, как отправить все значения состояния, просто используйте один код строки:

sendStateFunction();  // What should I type the arguments ?

1 Ответ

2 голосов
/ 06 ноября 2019

React позволяет вам определять объект состояния с несколькими подзначениями с помощью таких зацепок:

function DummyComponent(){
const [state, setState] = useState({ focus: false,
    name: 'test',
    image: '',
    avatarSource: '',
    imageBase: 'sfsafsfasf',
    imageLoader: null,})
// You can update it like that:
return <Button onClick={()=>setState(prevState=>{return {...prevState, newKey:1}})}>Click</Button>
}

Или вы можете использовать редуктор, используя зацепку useReducer. Все эти проблемы изложены в перехватах React Документация

...