Вернуть значение перед выполнением функции, аналогичной setstate в реакции - PullRequest
0 голосов
/ 03 августа 2020

Я хочу создать функцию, возвращающую значение, которое я могу проверить перед выполнением чего-либо, если мне нужно. Аналогично реагирует на setState. Что-то вроде:

changeState(initialState => {
  console.log(initialState);
  return 'Hello';
});

, но также может использоваться просто как:

changeState('hello');

Как это обрабатывается? Кажется, это должно быть просто, но я по какой-то причине не могу понять, как это осуществить. Кто-нибудь знает, как реагирует на эту ситуацию.

1 Ответ

0 голосов
/ 03 августа 2020

Я не на 100% понимаю, что вы хотите выполнить sh, но проверка typeof аргументов - это, вероятно, то, что вы ищете.

Простой пример, который присваивает значение свойства объекта на основе для функции или примитива в качестве первого аргумента

const state = {
  foo: 1
}

const changeFoo = (...args) => {
  if (typeof args[0] === 'function') {
    // assign value as result of function passing in initial value
    state.foo = args[0](state.foo)
  } else {
    // assign value directly
    state.foo = args[0]
  }
};

// set value directly
changeFoo(2)
console.log('after set 2:', state.foo)// expect 2
// set value as return of function
changeFoo((initial) => initial + 1)
console.log('after func:', state.foo)// expect 3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...