Проблема в том, что то, что вы пытаетесь сделать, не должно быть сделано. Вы не должны раздувать фрагменты внутри других фрагментов. Из документации от Android :
Примечание. Вы не можете раздувать макет во фрагмент, если этот макет содержит & lt; фрагмент & gt ;. Вложенные фрагменты поддерживаются только при динамическом добавлении к фрагменту.
Хотя вы можете выполнить задачу с представленными здесь хаками, я настоятельно рекомендую вам не делать этого. Невозможно убедиться, что эти хаки будут обрабатывать то, что делает каждая новая ОС Android, когда вы пытаетесь раздуть макет для фрагмента, содержащего другой фрагмент.
Единственный поддерживаемый Android способ добавления фрагмента к другому фрагменту - это транзакция из диспетчера дочерних фрагментов.
Просто измените свой XML-макет в пустой контейнер (добавьте идентификатор если необходимо):
Затем в методе фрагмента
onViewCreated(View view, @Nullable Bundle savedInstanceState)
:@Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); FragmentManager fm = getChildFragmentManager(); SupportMapFragment mapFragment = (SupportMapFragment) fm.findFragmentByTag("mapFragment"); if (mapFragment == null) { mapFragment = new SupportMapFragment(); FragmentTransaction ft = fm.beginTransaction(); ft.add(R.id.mapFragmentContainer, mapFragment, "mapFragment"); ft.commit(); fm.executePendingTransactions(); } mapFragment.getMapAsync(callback); }
Можете ли вы проверить этот документ - https://medium.com/tech-tajawal/deploying-react-app-to-google-app-engine-a6ea0d5af132
Это будет помочь тебе. Я развернул свое приложение, используя те же шаги.
Пример файла yaml
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /
static_files: build/index.html
upload: build/index.html
- url: /
static_dir: build
Ссылочная ссылка - https://medium.com/google-cloud/how-to-deploy-a-static-react-site-to-google -cloud-platform-55ff0bd0f509
Спасибо!
В результате многократного поиска в Интернете я обнаружил, что причиной была система маршрутизации моего приложения реакции
. Как говорится в в этом посте , мы должны быть осторожны при разработке app.yaml. Если мы сначала напишем следующий элемент, GAE вернет build/index.html
для всех запросов, включая доступ к /static/js
и /static/css
.
- url: /
static_files: build/index.html
upload: build/index.html
create-react-app
создает папку сборки и статические подпапки для npm run build
. Таким образом, мне пришлось написать свой app.yaml более конкретно так:
handlers:
- url: /static/js/(.*)
static_files: build/static/js/\1
upload: build/static/js/(.*)
- url: /static/css/(.*)
static_files: build/static/css/\1
upload: build/static/css/(.*)
- url: /static/media/(.*)
static_files: build/static/media/\1
upload: build/static/media/(.*)
- url: /(.*\.(json|ico))$
static_files: build/\1
upload: build/.*\.(json|ico)$
- url: /
static_files: build/index.html
upload: build/index.html
- url: /.*
static_files: build/index.html
upload: build/index.html