从api获取错误的值会响应本机钩子

时间:2020-01-17 23:04:31

标签: javascript reactjs react-native

好吧,这对我来说很奇怪,我的api应该抛出下一个字符串24、36、48,而我实际上我是在执行我的value变量获取该值的,所以我需要将其拆分为in 3 o,B,C(有时它有4个值,这就是为什么我有一个D变量),所以我这样分割字符串

 `const [termA, termB, termC, termD] = values.split(',');
      setvA(Number(termA));
      setvB(Number(termB));
      setvC(Number(termC));
      setvD(Number(termD));`

,并且每个人都得到他们应获得的值,如果我的值是24,36,48,则滑块会出现问题,滑块会得到36,48,NaN 这是我的全部代码

这是api调用

  const [sliderValue, setsliderValue] = useState();
  const [sliderValue2, setsliderValue2] = useState(A);
  const [A, setvA] = useState();
  const [B, setvB] = useState();
  const [C, setvC] = useState();
  const [D, setvD] = useState();
  const [pterms, setpterms] = useState([]);
  const valuesFromApi = [ A,B,C,D];
  const [Value, setValue] = useState(pterms[A]);
  useEffect(() => { 
 async  function BCcontroller() {
  const vCreationUser = 6;
  const vSolicitudeId = 8;
  const { data } = await ForceApi.post(`/ConsultBCController.php`, {vSolicitudeId, vCreationUser});
  const values = data.terms;
  setpterms(data.terms);
  //console.log(values);
  const [termA, termB, termC, termD] = values.split(',');
  setvA(Number(termA));
  setvB(Number(termB));
  setvC(Number(termC));
  setvD(Number(termD));
  // console.log(values);
}
 BCcontroller();
}, );

if (!A) return null;

这是我的滑块

<View style={{alignItems: 'stretch', justifyContent: 'center' }}>
                <Slider 
                  maximumValue={D > 0 ? 4: 3 }
                  minimumValue={1}
                  step={1}
                  value={valuesFromApi.indexOf(Value)}
                 onValueChange={index => setValue(valuesFromApi[index])} 
                />
                <View style={styles.plazos}>
                  <Text style={styles.plazo1}>{A} meses</Text>
                  <Text style={styles.plazo2}>{B} meses</Text>
                  <Text style={styles.plazo3}>{C} meses</Text>
                  {D > 0 ? <Text style={styles.plazo3}>{D} meses</Text>: null }
                </View>
                <Text style={styles.slideText}>Su credito por:  ${A}MXN</Text>
                <Text style={styles.slideText}>Usted recibe:    ${A}MXN</Text>
                <Text style={styles.slideText}>A un plazo de:  {Value} meses</Text>

                <Text style={styles.PaymentText}>Su pago: ${A}.00 MXN</Text>
              </View>

0 个答案:

没有答案