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