Custom field:useState can not update value

import ForgeUI, { CustomField, CustomFieldEdit, render, Text, TextField, useState, useEffect } from "@forge/ui";
import api, { route } from "@forge/api";

const View = () => {
  const [fieldValue, setFieldValue] = useState("loading...");

  const getFieldValue = async () => {
    try {
      const response = await api.asUser().requestJira(route`/rest/api/3/issue/***/properties/****`, {
        headers: {
          'Accept': 'application/json'
        }
      });

      console.log(`Response: ${response.status} ${response.statusText}`);
      
      if (response.ok) {
        const res = await response.json();
        console.log("API Response:", res);

        if (res.value && res.value.fields && res.value.fields.length > 0) {
          console.log(res.value.fields[0].value);
          setFieldValue(res.value.fields[0].value);
        } else {
          console.warn("No valid fields found in response.");
          setFieldValue("No data available");
        }
      } else {
        console.error("Failed to fetch field value.", response.statusText);
      }
    } catch (error) {
      console.error("Error while fetching field value:", error);
      setFieldValue("Error fetching data");
    }
  };

  useEffect(() => {
    getFieldValue();
  }, []); 

  return (
    <CustomField>
      <Text>{fieldValue}</Text>
      {console.log("Rendering with fieldValue:", fieldValue)}
    </CustomField>
  );
};

export const runView = render(
  <View />
);

1 Like

in issueview page

fieldValue is only rendered once when the forge application is loaded, and the interface does not render normally after returning the value

1 Like