작성
·
1K
답변 1
0
안녕하세요.
해당부분은 mysql과 php단에서 해결하셔야할 문제로 보입니다. 데이터베이스가 백엔드에 존재하는순간 사실상 프론트엔드는 요청을 넣고 결과를 디스플레이하는 역할만 합니다. 서버에 로직이 짜여있다면 api 요청만 하시면 됩니다.
안녕하세요. 프로그래밍에 "자동"이라는 개념은 존재하지 않습니다. 무언가는 트리거를 해줘야합니다.
서버로 요청을 보내기전에 서버에서 먼저 푸쉬가 되도록 하고싶으신거면 Web Socket 쪽을 알아보시면 됩니다.
아하 그렇군요
저는 로그인하면 바로 닉네임이 보여야하는데 바로 나오지 않고 로그인 후 나오는 화면을 2번~3번 다시 들어간 후에 표시되길래 자동으로 처리되게 코드를 적어야하는줄 알았습니다. 값을 약간 늦게 가져오는거 같은데 어떻게 처리해야할까요 웹 소켓쪽인건가요?
그건 웹소켓과 관련이 없을것같고 말씀주신 내용으로만 파악해봤을땐 build를 실행하시는 타이밍의 문제일 것 같습니다. 데이터를 가져온 다음에 build를 실행하도록 코드를 짜야하는데 데이터를 가져온 후 새로 build를 안하거나 미리 build를 하는 경우가 초보분들이 많이 실수하는 부분입니다.
아하 그런거군요 오늘9시에 확인하고 아직까지도 해결을 못했습니다.
setState 쓰면 바뀌는줄 알았는데 override해서 setState 안에 넣으니 화면 변화가 없어서 RefreshIndicator 안에 setState불러서 넣고 하니 화면을 밑으로 스크롤하니 값이 변하기는 합니다 하지만 이게 로그인페이지에서 로그인버튼 누르고 이동된페이지에서 바로 로그인된 상태가 안되고 화면을 밑으로 1번 내려야 로그인상태가되는데 닉네임은 가져오지 못합니다 그래서 2번더 화면을 밑으로 당기면 가져오더라고요 어떻게 처리해야할지 잘모르게씁니다.
RefreshIndicator(
onRefresh: () async {
await Future.delayed(Duration(seconds: 3));
setState(() {
_load();
getNamed();
});
},
로그인 상태일때 위젯과 로그아웃을떄 위젯은 if문 써서 다르게 보이게 했습니다.
if(loginCheked == 'F')...[
if(loginCheked == 'T')...[
네 async가 있습니다. 비동기를 없애야 하는 건가요?
_load() async {
Future getNamed() async {
SharedPreferences _prefs = await SharedPreferences.getInstance();
SharedPreferences 사용한다고 적어둔거 같습니다.
답변 감사합니다.
맞게 구현한건지는 모르겠지만 가져오게는 했습니다. 그런데 문제가 수동으로 새로고침?해줘야 닉네임값이 변하던데 자동으로 새로고침은 어떻게 해야할까요?...